我需要在加载Web内容时隐藏WebVew.我试着用这样的其他视图做到这一点:
<WebView
android:scrollbars="none"
android:id="@+id/id_webview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
/>
<View
android:visibility="gone"
android:scrollbars="none"
android:id="@+id/id_view"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
/>
Run Code Online (Sandbox Code Playgroud)
当我想隐藏WebView时,我将View的可见性更改为"visible"(View.setVisibility(View.VISIBLE);).但View不包含WebView,也没有隐藏.我需要在加载WebView时将视图放在前面.
虽然我发现这种方法很奇怪,但您应该检查这些视图的父容器.
如果是LinearLayout,难怪View不会覆盖WebView.如果要使用Layouts,请尝试使用RelativeLayout并以相同方式对齐元素,例如,添加到两个视图:
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
Run Code Online (Sandbox Code Playgroud)
另一种变体(以及更正确的IMO)是使用ViewSwitcher或ViewFlipper.它使用showNext(),showPrevious()(在ViewFlipper中)和getNextView()(在ViewSwitcher中)方法在它的子节点之间切换.真的很容易实现和使用.查看一些例子.
快速提示:
<!-- ViewSwitcher or ViewFlipper -->
<ViewSwitcher
android:id="@+id/view_switcher"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<View
android:scrollbars="none"
android:id="@+id/id_view"
android:layout_width="fill_parent"
android:layout_height="fill_parent" />
<WebView
android:scrollbars="none"
android:id="@+id/id_webview"
android:layout_width="fill_parent"
android:layout_height="fill_parent" />
</ViewSwitcher>
Run Code Online (Sandbox Code Playgroud)
并且,在您的代码中:
// This will hide currently displayed and reveal next
((ViewSwitcher) findViewById(R.id.view_switcher)).getNextView();
// Or, in case of ViewFlipper:
// This will hide currently displayed and reveal next
((ViewFlipper) findViewById(R.id.view_switcher)).showNext();
Run Code Online (Sandbox Code Playgroud)
两者之间的区别在于,Switcher只能有2个孩子,并且有一个工厂可以创建视图.
PS混合两位动画师,编辑后.
| 归档时间: |
|
| 查看次数: |
5613 次 |
| 最近记录: |