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。