
我有一个自定义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-在布局中多次添加自定义视图所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)