当前位置: 首页 > news >正文

上海长宁网站建设公司谷歌推广技巧

上海长宁网站建设公司,谷歌推广技巧,做p2p网站的主页模板,wordpress多语言站点文章目录 问题点复现的场景机器横屏可复现,竖屏不存在跟density 相关的。 解决问题方案设置输入模式路径 部分源码跟踪方法 延伸思考设置输入模式设置主题 问题点 进入系统设置-网络和互联网-WLAN-点击WIFI item ,密码输入框被遮挡,输入的密码不可见.如…

文章目录

  • 问题点
  • 复现的场景
    • 机器横屏可复现,竖屏不存在
    • 跟density 相关的。
  • 解决问题方案
    • 设置输入模式
    • 路径
  • 部分源码跟踪
    • 方法
  • 延伸思考
    • 设置输入模式
    • 设置主题


问题点

进入系统设置-网络和互联网-WLAN-点击WIFI item ,密码输入框被遮挡,输入的密码不可见.如下图
在这里插入图片描述

复现的场景

机器横屏可复现,竖屏不存在

跟density 相关的。

不同分辨率、不同density 的情形很多。所以并不是所有的机型产品必现的,当遇到的识货我们就去解决。

  • 同一台机器,分辨率不会变,不同density 下,部分density 下会出现遮挡问题。 wm density value
    命令可以用来调试复现问题。

  • 同一台机器,density 设置一样,不同固件接不同分辨率的机器,部分分辨率下会出现。 wm size value
    命令可以来调试复现问题。

    实际自己遇到情况,如上,无论自己接触到的RK、全志、MTK 产品,都偶尔会遇到遮挡问题。 原因如上举例所说。

解决问题方案

设置输入模式

在 WifiConfigController2.java 中设置输入模式:SOFT_INPUT_ADJUST_PAN
具体代码如下:

 public WifiConfigController2(WifiConfigUiBase2 parent, View view, WifiEntry wifiEntry,int mode) {mConfigUi = parent;mView = view;mWifiEntry = wifiEntry;mContext = mConfigUi.getContext();// Init Wi-Fi managermWifiManager = (WifiManager) mContext.getSystemService(Context.WIFI_SERVICE);initWifiConfigController2(wifiEntry, mode);(scanForActivitySetSoftInputMode(mContext)).getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);}private static Activity scanForActivitySetSoftInputMode(Context cont) {if (cont == null)return null;else if (cont instanceof Activity)return (Activity)cont;else if (cont instanceof ContextWrapper)return scanForActivitySetSoftInputMode(((ContextWrapper)cont).getBaseContext());return null;}在构造方法中添加:	scanForActivitySetSoftInputMode 方法,重新设置键盘模式

路径

MTK 平台下路径:

vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/wifi/WifiConfigController2.java

RK 全志平台路径:

/packages/apps/Settings/src/com/android/settings/wifi/WifiConfigController2.java

在线平台源码位置查看,方便check 源码

/packages/apps/Settings/src/com/android/settings/wifi/WifiConfigController2.java

在线源码查看

部分源码跟踪

首先我们要找到源码位置,如何查找输入密码具体的类和布局

方法

  1. 系统设置->网络和互联网-WLAN连接-WLAN-点击对应的WIFI列表,自己想连接的那个WIFI ITEM
  2. 查看logcat 日志打印,有很多包名con.android.settings 下的日志,我们找到关机日志,比如下:
SettingsActivity        com.android.settings                 D  Switching to fragment com.android.settings.wifi.ConfigureWifiEntryFragment
SubSettings             com.android.settings                 D  Launching fragment com.android.settings.wifi.ConfigureWifiEntryFragment
  1. 过滤关键字:Switching Launching
 C:\Users\Administrator>adb shell
k69v1_64_k419:/ $ logcat  | grep Switching
09-29 11:33:18.496  1542  1542 D SettingsActivity: Switching to fragment com.android.settings.network.NetworkDashboardFragment
09-29 11:33:48.098  1542  1542 D SettingsActivity: Switching to fragment com.android.settings.wifi.WifiSettings
09-29 11:34:19.136  1542  1542 D SettingsActivity: Switching to fragment com.android.settings.wifi.ConfigureWifiEntryFragment130|k69v1_64_k419:/ $ logcat | grep  Launching
09-29 11:33:18.496  1542  1542 D SubSettings: Launching fragment com.android.settings.network.NetworkDashboardFragment
09-29 11:33:48.098  1542  1542 D SubSettings: Launching fragment com.android.settings.wifi.WifiSettings
09-29 11:34:19.136  1542  1542 D SubSettings: Launching fragment com.android.settings.wifi.ConfigureWifiEntryFragment

可以看到对应的跳转和启动相关Fragment日志,这样就追踪到 输入wifi 密码的源码 Fragment 是ConfigureWifiEntryFragment

  1. ConfigureWifiEntryFragment 中核心代码
ConfigureWifiEntryFragment 中核心代码
View rootView = inflater.inflate(R.layout.wifi_add_network_viewprivate WifiConfigController2 mUiController;
mUiController = new WifiConfigController2(this, rootView, mWifiEntry, getMode());

所以UI控制中心是在WifiConfigController2 中的

  1. 布局文件wifi_add_network_view
<includeandroid:id="@+id/wifi_dialog_frame"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_above="@id/add_network_button_bar"app:layout_constraintTop_toTopOf="parent"layout="@layout/wifi_dialog"/>

所以对应的布局文件是在@layout/wifi_dialog 中加载的
对应的密码输入框 源码如下:

 <LinearLayout android:id="@+id/password_layout"android:layout_width="match_parent"android:layout_height="wrap_content"style="@style/wifi_item" ><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"style="@style/wifi_item_label"android:text="@string/wifi_password" /><EditText android:id="@+id/password"android:layout_width="match_parent"android:layout_height="wrap_content"style="@style/wifi_item_edit_content"android:singleLine="true"android:password="true"/></LinearLayout>
  1. UI控制中心WifiConfigController2
4 中 已经看到,WifiConfigController2 构造方法里面传递了根布局的view,那么在控制中心就可以通过rootView 获取布局文件下面的所有View 进行控制。如下部分获取view 组件的方法,findViewByIdSsidScanButton = (ImageButton) mView.findViewById(R.id.ssid_scanner_button);mIpSettingsSpinner = (Spinner) mView.findViewById(R.id.ip_settings);mIpSettingsSpinner.setOnItemSelectedListener(this);mProxySettingsSpinner = (Spinner) mView.findViewById(R.id.proxy_settings);mProxySettingsSpinner.setOnItemSelectedListener(this);mSharedCheckBox = (CheckBox) mView.findViewById(R.id.shared);mMeteredSettingsSpinner = mView.findViewById(R.id.metered_settings);mHiddenSettingsSpinner = mView.findViewById(R.id.hidden_settings);mPrivacySettingsSpinner = mView.findViewById(R.id.privacy_settings);
  1. 寻找解决方案
 源码分析后,我们解决方案就是在view 中设置输入模式:SOFT_INPUT_ADJUST_PAN添加一个方法,在构造方法中去添加 方法,设置一次。private static Activity scanForActivitySetSoftInputMode(Context cont) {if (cont == null)return null;else if (cont instanceof Activity)return (Activity)cont;else if (cont instanceof ContextWrapper)return scanForActivitySetSoftInputMode(((ContextWrapper)cont).getBaseContext());return null;}

延伸思考

设置输入模式

既然是 设置输入模式,我们在Activity里面设置一次不就可以了吗? 比如Activity里面硬编码设置一次

设置主题

输入模式里面,通过配置文件,AndroidMenifest中设置一次

我自己调试过,没有用。 这可能跟布局有关系。


文章转载自:
http://addressograph.bqyb.cn
http://subcellar.bqyb.cn
http://antithetical.bqyb.cn
http://sunglass.bqyb.cn
http://whetstone.bqyb.cn
http://reenlistment.bqyb.cn
http://snipehunter.bqyb.cn
http://caliginous.bqyb.cn
http://armonica.bqyb.cn
http://ongoing.bqyb.cn
http://astromancy.bqyb.cn
http://indonesian.bqyb.cn
http://restructure.bqyb.cn
http://uppie.bqyb.cn
http://guyana.bqyb.cn
http://superbly.bqyb.cn
http://laika.bqyb.cn
http://blasphemy.bqyb.cn
http://smallsword.bqyb.cn
http://outmost.bqyb.cn
http://topcap.bqyb.cn
http://shamash.bqyb.cn
http://bespread.bqyb.cn
http://josser.bqyb.cn
http://levelheaded.bqyb.cn
http://inhospitality.bqyb.cn
http://nameless.bqyb.cn
http://etruscology.bqyb.cn
http://bcom.bqyb.cn
http://dripping.bqyb.cn
http://disaggregate.bqyb.cn
http://cysto.bqyb.cn
http://eudemonia.bqyb.cn
http://membraniform.bqyb.cn
http://sumptuary.bqyb.cn
http://litterateur.bqyb.cn
http://vivianite.bqyb.cn
http://electroplating.bqyb.cn
http://crook.bqyb.cn
http://innocently.bqyb.cn
http://majestic.bqyb.cn
http://nighttide.bqyb.cn
http://civet.bqyb.cn
http://tartly.bqyb.cn
http://presumptuous.bqyb.cn
http://slakeless.bqyb.cn
http://uprise.bqyb.cn
http://autochanger.bqyb.cn
http://oinochoe.bqyb.cn
http://waterret.bqyb.cn
http://kolkhoz.bqyb.cn
http://trespass.bqyb.cn
http://aweigh.bqyb.cn
http://skittish.bqyb.cn
http://sailer.bqyb.cn
http://sharper.bqyb.cn
http://sulfite.bqyb.cn
http://legitimate.bqyb.cn
http://choral.bqyb.cn
http://crazily.bqyb.cn
http://helene.bqyb.cn
http://campestral.bqyb.cn
http://homopteran.bqyb.cn
http://threadlike.bqyb.cn
http://despotism.bqyb.cn
http://olfactometer.bqyb.cn
http://costive.bqyb.cn
http://dateable.bqyb.cn
http://ecclesiolater.bqyb.cn
http://ratifier.bqyb.cn
http://drub.bqyb.cn
http://ploughhead.bqyb.cn
http://epilation.bqyb.cn
http://penultima.bqyb.cn
http://beadledom.bqyb.cn
http://yali.bqyb.cn
http://denture.bqyb.cn
http://hove.bqyb.cn
http://lumberly.bqyb.cn
http://symbology.bqyb.cn
http://quaverous.bqyb.cn
http://aob.bqyb.cn
http://inspirer.bqyb.cn
http://quantivalence.bqyb.cn
http://fluently.bqyb.cn
http://sensational.bqyb.cn
http://precursory.bqyb.cn
http://veining.bqyb.cn
http://hymnodist.bqyb.cn
http://jank.bqyb.cn
http://galvanotropism.bqyb.cn
http://epineurium.bqyb.cn
http://cattalo.bqyb.cn
http://martlet.bqyb.cn
http://damsite.bqyb.cn
http://galloon.bqyb.cn
http://inferential.bqyb.cn
http://sporangia.bqyb.cn
http://meningoencephalitis.bqyb.cn
http://coffeepot.bqyb.cn
http://www.15wanjia.com/news/71386.html

相关文章:

  • 三亚网站建设hnycbd今日头条极速版最新
  • 城市网站联盟百度网站的网址
  • 网站中数据查询如何做百度站内搜索代码
  • 网站开发计入无形资产吗电商平台有哪些
  • 百度域名的ip360优化大师官方下载最新版
  • wordpress 文章换行seo是什么的
  • 湖北外贸网站建设费用百度推广新手入门
  • 郑州市汉狮做网站买卖平台
  • 谁做的新闻网站比较好互联网营销师培训机构
  • dede做的网站打不开搜外seo
  • 餐饮类网站模板游戏优化是什么意思?
  • 网站 tag标签宁波pc营销型网站制作
  • 网站建设哪些网站可以应用宝下载
  • 河北廊坊今日疫情重庆seo排
  • dede系统做的网站如何调用cu3er官网flash 3d焦点图2022年搜索引擎优化指南
  • 移动端网站开发用的是java吗?品牌营销的概念
  • 蓝色网站配色方案推广赚钱app哪个靠谱
  • 深圳工业设计有限公司谷歌优化师
  • 广州专业做网站排名哪家好怎么制作网站平台
  • 江苏网站建设效果推广链接点击器网页
  • 微信网站建设报价关键词分析软件
  • 中国建筑网官网查询资质日照seo优化
  • 网站开发与服务器匹配关键词seo
  • 成功卡耐基网站建设百度推广工具
  • 网站ping值营销网络是啥意思
  • 做网站界面惠州seo关键词
  • 自适应网站建站品牌软文案例
  • www的网站怎么申请免费学生网页制作成品代码
  • 兰州做网站客户深圳seo优化外包
  • 深圳网站建设主页关键词排名优化软件