1.LinearLayout让输入框充满整个屏幕宽度
<EditText
android:layout_weight="1"
android:layout_width="0dp"
... />
为了提升布局的效率,在设置权重时,应该把 EditText 的宽度设为 0dp。如果设置宽度为 “wrap_content”,系统需要计算这个部件所占用的宽度;而此时的 EditText 因为设置了权重,所以会占据剩余空间;所以,最终导致的结果是:EditText 的宽度成了不起作用的属性(细节:节省系统资源)
2.LoadMultipleRootFragment加载WebView白屏bug问题
loadMultipleRootFragment(R.id.rootView, 0, loadingFragment,webFragment)
- 介绍:
有两个页面,一个Loading加载页面,一个webView网页。
- 预期场景:
先显示loading加载页,webFragment静默加载结束,使用showHideFragment切换到webFragment显示网页。
- 实际场景:
切换到webFragment之后显示白屏。
问题定位:使用loadMultipalRootFragment方法add的Fragment,如果该Fragment不是showPosition对应的显示页,则该Fragment会在add之后接着调用hide方法隐藏,此时该Fragment的宽高为0,如果该Fragment为网页WebView的容器,而该webView要load的网页又需要根据控件宽高绘制页面,那么这时由于Fragment宽高为0,就会因无法获取有效宽高而网页白屏。
.
-
解决方案:
1.H5网页端取消宽高获取或对获取到的宽高数据做相应的判定处理。
2.Native端,在loadMultipalRootFragment后用showHideFragment切换显示。loadMultipalRootFragment(R.id.rootView, 1, loadingFragment, webFragment) showHideFragment(loadingFragment, webFragment)或
loadMultipleRootFragment(R.id.rootView, 0, loadingFragment,webFragment) showHideFragment(webFragment, loadingFragment) showHideFragment(loadingFragment, webFragment)
3.不使用loadMultipalRootFragment。
本文记录了两个Android开发中遇到的问题:如何让LinearLayout中的EditText填充全屏,以及LoadMultipleRootFragment加载WebView时出现的白屏bug。在LinearLayout中,设置EditText权重时宽度应为0dp以避免无效的宽度计算。对于WebView白屏问题,原因在于隐藏的Fragment宽高为0,导致网页无法正确绘制。解决方案包括调整H5网页处理宽高、在Native端使用showHideFragment切换或避免使用loadMultipalRootFragment。
1972

被折叠的 条评论
为什么被折叠?



