简体   繁体   English

Android-动态更改视图布局

[英]Android-Change Layout of view dynamically

I have some view in my activity : 我在活动中有一些看法:

for(int i=0;i<My_NewsGroup.size();i++)
    {
        View My_UpdateView=new View(MainActivity.this);
        My_UpdateView =LayoutInflater.from(MainActivity.this).inflate(R.layout.row2, null);
.....
    }

now i want to change layout of some view dynamically ! 现在我想动态更改某些视图的布局!

how can i do this ? 我怎样才能做到这一点 ?

TnX ---------------------------------EDIT------------------- TnX ---------------------------------编辑--------------- ----

LinearLayout ll2 = (LinearLayout)findViewById(R.id.parent2);
    for(int i=0;i<My_NewsGroup.size();i++)
    {
        View My_UpdateView=new View(MainActivity.this);
        My_UpdateView = LayoutInflater.from(MainActivity.this).inflate(R.layout.row2, null);

                     ....
                     .....          
        RelativeLayout.LayoutParams relativeParams = new RelativeLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);

        ll2.addView(My_UpdateView,relativeParams);

        MyViewList.add(My_UpdateView);
    }

MyViewList is : List MyViewList=new ArrayList(); MyViewList是:List MyViewList = new ArrayList();

and then ! 接着 ! for example if i want to hide some View : 例如,如果我想隐藏一些View:

MyViewList.get(pos).setVisibility(View.GONE);

but now i want to change layout for some view ! 但是现在我想更改某些视图的布局!

You can't change view itself and reinflate it with different xml layout. 您不能更改视图本身,并使用不同的xml布局重新填充它。 You can change view's container content. 您可以更改视图的容器内容。 Remove old view from ViewGroup and replace it with new one. 从ViewGroup中删除旧视图,并将其替换为新视图。 Here is trivial example: 这是一个简单的例子:

FrameLayout somelayout...
somelayout.removeView(viewYouWantToReplace);
somelayout.addView(inflator.inflate(R.layout.row2, somelayout, false));

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM