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

江门做网站的公司济南新站seo外包

江门做网站的公司,济南新站seo外包,推广员是什么工作,追设计网站文章目录 问题点复现的场景机器横屏可复现,竖屏不存在跟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://www.zhongyajixie.com/news/54075.html

相关文章:

  • 商务网站建设毕业设计百度推广seo
  • 宝安做棋牌网站建设找哪家公司好微商引流一般用什么软件
  • 视频网站是用什么框架做的网络营销专业学校排名
  • bi网站开发营销策划与运营团队
  • 自己学做网站网站关键词优化方法
  • 深圳网站建设选哪家好站长工具国色天香
  • 35互联做网站怎么样平台搭建
  • 模板网站下载夫唯seo怎么样
  • 做一个论坛网站多少钱赣州seo外包怎么收费
  • 手机能建网站不seo产品优化推广
  • 最牛的网站建设深圳关键词排名推广
  • 哪个网站做线上家教比较好服装品牌营销策划方案
  • 做资源网站 文件能存储到云盘吗域名网
  • 网站制作一般收费seo优化范畴
  • 我的世界怎么做神器官方网站做任务赚佣金的正规平台
  • 企业网站的开发背景合肥网络公司seo
  • 做折扣的网站有哪些巢湖网站制作
  • 兼职做网站访问量和数据长沙seo男团
  • 网站问责建设书百度软件中心
  • 做网贷中介网站赚钱吗怎么建立网站快捷方式
  • 网站备案后更换主机免费域名注册服务网站
  • 自己的网站做一些诱惑百度网页版网址
  • 网站为什么不收录小红书seo是什么意思
  • 局域网站建设模版微信怎么推广
  • 常德网站制作建设黄页网站推广
  • 中央两学一做专题网站seo流量排行榜神器
  • 购物网站制作网络黄页推广软件哪个好用
  • 创业计划书建设网站长春网站制作设计
  • 基本信息型网站有哪些建立网站的软件
  • 网站制作案例怎么样竞彩足球最新比赛