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

jsp网站开发的环境配置网站cms

jsp网站开发的环境配置,网站cms,做网站素材在哪找,做外贸怎么上国外网站文章目录 问题点复现的场景机器横屏可复现,竖屏不存在跟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/59111.html

相关文章:

  • 河南郑州网站建设长沙网站策划
  • 网站开发不让搜索引擎网站数据统计工具
  • 怎样做的英文网站东莞网站推广哪里找
  • 网站开发工具和平台网站域名查询官网
  • 做网站发票常州seo外包公司
  • 长春网站建设电话平原县网站seo优化排名
  • 找论文的免费网站专业营销团队公司
  • 医院网站模板 html北京自动网络营销推广
  • 珠海移动网站建设报价网络推广平台收费不便宜
  • 用html5做的静态网站百度竞价渠道代理商
  • 做的好的大学生旅行有哪些网站好靠谱的影视后期培训班
  • 永久免费的个人oa办公软件成都专业seo公司
  • 梧州网站优化价格店铺100个关键词
  • 回收网站怎么做今日新闻最新事件
  • 做外贸主页网站用什么的空间好点全网营销国际系统
  • wordpress投稿分成关键词优化简易
  • 赣州网站建设方案常德网站优化公司
  • 虹口网站建设公司什么是网络营销推广
  • 学做ps的网站有哪些报个电脑培训班要多少钱
  • 做好网站改版工作济南网络推广
  • 做水利网站需要多少钱如何在百度推广
  • sedo这种多语言网站怎么建设网络推广电话
  • 郑州做网站公司排中国最新消息新闻
  • dede增加手机网站怎么搭建属于自己的网站
  • 网站如何做交换链接域名解析查询
  • 企业网站可以自己做如何做个网站推广自己产品
  • 怎样做网站外部链接网站建设的好公司
  • 成华区建设局质检站网站整合营销方案
  • 医院网站建设技术方案36优化大师下载安装
  • 5分钟建站wordpress买卖链接网