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

主机屋网站在线做图片

主机屋网站,在线做图片,网站优化的主要内容,微科技h5制作网站模板下载文章目录 问题点复现的场景机器横屏可复现#xff0c;竖屏不存在跟density 相关的。 解决问题方案设置输入模式路径 部分源码跟踪方法 延伸思考设置输入模式设置主题 问题点 进入系统设置-网络和互联网-WLAN-点击WIFI item ,密码输入框被遮挡#xff0c;输入的密码不可见.如… 文章目录 问题点复现的场景机器横屏可复现竖屏不存在跟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.javaRK 全志平台路径 /packages/apps/Settings/src/com/android/settings/wifi/WifiConfigController2.java在线平台源码位置查看方便check 源码 /packages/apps/Settings/src/com/android/settings/wifi/WifiConfigController2.java在线源码查看 部分源码跟踪 首先我们要找到源码位置如何查找输入密码具体的类和布局 方法 系统设置-网络和互联网-WLAN连接-WLAN-点击对应的WIFI列表自己想连接的那个WIFI ITEM查看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 过滤关键字Switching Launching C:\Users\Administratoradb 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 ConfigureWifiEntryFragment 中核心代码 ConfigureWifiEntryFragment 中核心代码 View rootView inflater.inflate(R.layout.wifi_add_network_viewprivate WifiConfigController2 mUiController; mUiController new WifiConfigController2(this, rootView, mWifiEntry, getMode()); 所以UI控制中心是在WifiConfigController2 中的 布局文件wifi_add_network_view includeandroid:idid/wifi_dialog_frameandroid:layout_widthmatch_parentandroid:layout_heightwrap_contentandroid:layout_aboveid/add_network_button_barapp:layout_constraintTop_toTopOfparentlayoutlayout/wifi_dialog/所以对应的布局文件是在layout/wifi_dialog 中加载的 对应的密码输入框 源码如下 LinearLayout android:idid/password_layoutandroid:layout_widthmatch_parentandroid:layout_heightwrap_contentstylestyle/wifi_item TextViewandroid:layout_widthwrap_contentandroid:layout_heightwrap_contentstylestyle/wifi_item_labelandroid:textstring/wifi_password /EditText android:idid/passwordandroid:layout_widthmatch_parentandroid:layout_heightwrap_contentstylestyle/wifi_item_edit_contentandroid:singleLinetrueandroid:passwordtrue//LinearLayoutUI控制中心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);寻找解决方案 源码分析后我们解决方案就是在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.w-s-a.com/news/234227/

相关文章:

  • 河南省城乡住房建设厅网站wordpress登陆密码
  • 漳州做网站的公司搭建网站多少时间
  • 网站开发实习计划模板微营销手机
  • 网站设计与制作是做什么工作免费封面设计在线制作生成
  • 网站开发的教学课程网站广告调词软件
  • 进下加强新闻宣传网站建设入门 做网站 书籍
  • 电商网站主题photolux wordpress
  • 周口专业做网站公司深圳市宝安区松岗街道邮政编码
  • 上海企业网站推广方法网络营销策划方案框架
  • 一流的常州网站建设机械加工网报价
  • 上海响应式网站建设公司seo课程总结
  • vs网站开发教程昆山普立斯特做的有网站
  • 柳州网站seo网站swordpress 输出内容
  • 网站设计制作电话多少网站流量下降
  • 沈阳做网站推广的公司唐山哪家做网站好
  • 国外著名网站建设公司WordPress破解怎样主题修复
  • 网站建设济南云畅网络广州电力建设有限公司网站
  • 查看公司信息的网站思特奇是外包公司吗
  • 制作企业网站的目的啥都能看的浏览器
  • 做网站可以用哪些语言如何进行网站运营与规划
  • 做效果图网站有哪些电子商城网站制作数据库
  • 小刘网站建设wordpress调用php文件上传
  • 建设银行对账网站网络营销广告案例
  • 做网站开票是多少个点的票wordpress扫码提交数据库
  • 织梦网站改版需要怎么做企业网站备案管理系统
  • 大规模网站开发语言宁夏建设职业技术学院网站
  • 寻花问柳专注做一家男人爱的网站北京展台设计制作
  • 中卫网站设计做自己的卡盟网站
  • 广州网站推广自助做网站人家直接百度能搜到的
  • 电子商务网站建设目标及利益分析安徽建设厅网站施