ViewGroup的removeView(View)方法没有效果,烈日下站等!!!!!

qq843788041 2010-11-01 07:01:41
部分XML布局代码:
<LinearLayout android:layout_width="fill_parent"
android:layout_height="fill_parent" android:layout_weight="1">
<FrameLayout android:id="@+id/webViewLayout"
android:layout_width="fill_parent" android:layout_height="fill_parent"></FrameLayout>
</LinearLayout>

在XML中定义了一个FrameLayout,然后再Java代码中动态添加WebVeiw组件:
FrameLayout webViewLayout = (FrameLayout) this.findViewById(R.id.webViewLayout);
WebView webView = new WebView(this);
webViewLayout.addView(webView);

之后想用ViewGroup类的removeView(View view)方法除去webView,使其在屏幕上不可见:
webViewLayout.removeView(webView)
,但是执行了该方法后,webView依旧显示在屏幕上,被这个问题困扰了一下午,哪位高手指教指教???
...全文
2380 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
abcdjw 2012-10-14
  • 打赏
  • 举报
回复
遇到同样的问题,同问~
qq843788041 2010-11-04
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 drsmart 的回复:]

哦,有点意思,说实在的webview一个界面多搞几个这个,确实挺罕见的,如果小于5个,硬编码应ViewStub动态控制,不过removeView不成功是因为你没有获取到正确的view,你可以看下遍历layout的view,用viewgroup确定每个webview的索引
[/Quote]
不是没有获取正确的view,而是remove掉该view时候,视图没有刷新,把屏幕拖动一下才更新
qq843788041 2010-11-04
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 qq843788041 的回复:]

引用 8 楼 drsmart 的回复:

呵呵,那你怎么构造,给你说view独立出来,嵌入到framelayout用id操作visiblity为gone就行了,

因为要在FrameLayout中动态添加或删除多个WebView,在XML中定义不太现实吧
[/Quote]
所谓的动态就是在Java代码中实现的饿
DrSmart 2010-11-03
  • 打赏
  • 举报
回复
哦,有点意思,说实在的webview一个界面多搞几个这个,确实挺罕见的,如果小于5个,硬编码应ViewStub动态控制,不过removeView不成功是因为你没有获取到正确的view,你可以看下遍历layout的view,用viewgroup确定每个webview的索引
qq843788041 2010-11-02
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 drsmart 的回复:]

呵呵,那你怎么构造,给你说view独立出来,嵌入到framelayout用id操作visiblity为gone就行了,
[/Quote]
因为要在FrameLayout中动态添加或删除多个WebView,在XML中定义不太现实吧
凉凉二点凉 2010-11-02
  • 打赏
  • 举报
回复
DrSmart 2010-11-02
  • 打赏
  • 举报
回复
呵呵,那你怎么构造,给你说view独立出来,嵌入到framelayout用id操作visiblity为gone就行了,
qq843788041 2010-11-02
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 ameyume 的回复:]

Java code
public class AndroidTest extends Activity {
FrameLayout webViewLayout;
WebView webView;

/** Called when the activity is first created. */
@Override
public void onC……
[/Quote]如果FrameLaout上添加了多个WebView,用removeView就没效果了呢?
ameyume 2010-11-01
  • 打赏
  • 举报
回复
public class AndroidTest extends Activity {
FrameLayout webViewLayout;
WebView webView;

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

webViewLayout = (FrameLayout) this.findViewById(R.id.webViewLayout);
webView = new WebView(this);
webViewLayout.addView(webView);

Button btnRemove = (Button)findViewById(R.id.btnRemove);
btnRemove.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
webViewLayout.removeView(webView);
}
});
}
}


main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1">

<FrameLayout android:id="@+id/webViewLayout"
android:layout_width="fill_parent"
android:layout_height="200dip">
</FrameLayout>
<Button android:id="@+id/btnRemove"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Remove"/>
</LinearLayout>

这样是起作用的,点击Remove按钮时,webview就消失了。
DrSmart 2010-11-01
  • 打赏
  • 举报
回复
webview独立出来布局界面,设置gone应该没问题。
qq843788041 2010-11-01
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 dinjay 的回复:]

removeView试试刷新一下layout,requestlayout之类的方法吧
[/Quote]

rootLayout.startLayoutAnimation();
webViewLayout.requestLayout();
rootLayout.updateViewLayout(rootLayout, rootLayout.getLayoutParams());
三个方法都试过了,都没有刷新效果啊,还有其他的方法吗
qq843788041 2010-11-01
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 ameyume 的回复:]

设置setVisibility(View.GONE);可以不?
[/Quote]
这个方法试过了,WebView还是显示在屏幕上
dinjay 2010-11-01
  • 打赏
  • 举报
回复
removeView试试刷新一下layout,requestlayout之类的方法吧
ameyume 2010-11-01
  • 打赏
  • 举报
回复
设置setVisibility(View.GONE);可以不?

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧