android-在布局中多次添加自定义视图

android-在布局中多次添加自定义视图,第1张

概述我有一个自定义XML文件.我想在布局中(相对而言)重复n次(动态地(显然)).我看过很多帖子,但没有帮助.我不是在寻找ListView或Adapters左右.就像-ARelativeLayout一样简单.在其中,在其上添加自定义XML.任何次数.使用静态LinearLayout(垂直方向)时,动态添加视图会导致一次渲染,而不

我有一个自定义XML文件.我想在布局中(相对而言)重复n次(动态地(显然)).

我看过很多帖子,但没有帮助.我不是在寻找ListVIEw或Adapters左右.就像-A relativeLayout一样简单.在其中,在其上添加自定义XML.任何次数.

使用静态linearLayout(垂直方向)时,动态添加视图会导致一次渲染,而不是一个视图另一个视图.不知道为什么.尽管TextVIEw左右在linearLayout(垂直)内部的循环中确实要在另一个下方重复一个.

然后,我动态创建了布局(相对),并扩展了自定义XML.显示一个.当我在第一个下尝试另一个时,它告诉我先删除孩子的父母(例外).如果我这样做并再次添加,则与删除第一个渲染视图并再次添加一样好.

那么,如何在同一布局中获得多个视图?

我尝试过的粗略介绍:

 mainLayout = (relativeLayout)findVIEwByID(R.ID.mainlay); //Mainlayout containing some vIEws already        params = new relativeLayout.LayoutParams(VIEwGroup.LayoutParams.WRAP_CONTENT,                VIEwGroup.LayoutParams.WRAP_CONTENT);        params.addRule(relativeLayout.BELOW,R.ID.sIDeLayout); //sIDeLayout is an existing linearLayout within the main layout.        VIEw child = getLayoutInflater().inflate(R.layout.dynamiccustomlayout,null);        relativeLayout r1 = new relativeLayout(this);        r1.setLayoutParams(params);        r1.addVIEw(child);        mainLayout.addVIEw(r1);        mainLayout.setLayoutParams(params);        mainLayout.addVIEw( child);       /* r2 = new relativeLayout(this);        r2.setLayoutParams(params);        r2.addVIEw(contentLayout); [Gives exception] */ 

解决方法:

这就是我的工作方式…

在此之前,androID的问题是:

如果在linearLayout(水平)内部添加动态视图,则它们将与新创建的实例一起水平显示,并添加到视图中.

但是,令人震惊的是,在linearLayout(垂直方向)的情况下,情况并不相同.因此整个混乱.

解:

relativeLayout布局文件已与变量绑定,如下所示:

customLay = (relativeLayout) mainLay.findVIEwByID(R.ID.dynamicCustomLayout);

然后,创建一个动态relativeLayout,在其中添加/包装前一个变量.

customLayout = new relativeLayout(this);customLayout.addVIEw(customLay);

每个布局都有一个ID:

 customLayout.setID(i);

然后运行循环(如果i = 0且i> 0的条件为2)

对于i> 0(表示第二个动态布局,要添加到第一个下面),将创建LayoutParameter:

params = new relativeLayout.LayoutParams(VIEwGroup.LayoutParams.MATCH_PARENT, VIEwGroup.LayoutParams.WRAP_CONTENT);

然后对于i> 0,使用动态视图的ID,将它们一个添加到另一个下面:

//Following code below used ID to place these vIEws below each other to attain List type arrangement of vIEws//    // i==0 for first vIEw on top//     if (i == 0) {                         params.addRule(relativeLayout.BELOW, R.ID.sIDeLayout);                        customLayout.setLayoutParams(params);                    }    // i>0 for vIEws that will follow the first top//else {                         params.addRule(relativeLayout.BELOW, i - 1);                        customLayout.setLayoutParams(params);                    }

然后添加到主根布局,其中需要显示所有这些视图或卡片:

includeLayout.addVIEw(customLayout);

当然,代码不只是这个.我写了一些重要的观点,这些观点可以帮助我实现目标,并可能在将来帮助其他人.

所以主要的本质是-

>使用动态relativeLayout,
>绑定静态relativeLayout,然后
>为动态relativeLayout包装器分配ID,并
>根据ID使用relativeLayoutParameters放置以下内容
低于先前ID的ID.

总结

以上是内存溢出为你收集整理的android-在布局中多次添加自定义视图全部内容,希望文章能够帮你解决android-在布局中多次添加自定义视图所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/1090083.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-27
下一篇2022-05-27

发表评论

登录后才能评论

评论列表(0条)

    保存