我想制作添加按钮,将视图添加到另一个下面。我不想要Listview。我在每个视图上尝试了设置ID,然后使用setID添加,但是当我点击按钮时,视图会在同一位置创建。
final Button addView = (Button)findViewById(R.id.addView);
mainLayout = (RelativeLayout)findViewById(R.id.activity_mainID);
final RelativeLayout rv = new RelativeLayout(MainActivity.this);
rv.setId(-1);
TextView tx = new TextView(this);
rv.setBackgroundColor(ContextCompat.getColor(this,R.color.colorAccent));
rv.addView(tx);
mainLayout.addView(rv,100,100);
addView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
RelativeLayout view = new RelativeLayout(MainActivity.this);
RelativeLayout.LayoutParams params1 = new RelativeLayout.LayoutParams(200,200);
view.setId(id);
TextView tv = new TextView(MainActivity.this);
tv.setText("TEXT"+id);
view.addView(tv);
view.setBackgroundColor(ContextCompat.getColor(MainActivity.this,R.color.colorPrimary));
params1.addRule(RelativeLayout.BELOW, id--);
mainLayout.addView(view,params1);
id=id+2;
}
});
XML
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
android:weightSum="10"
android:id="@+id/activity_mainID"
>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/addView"
android:text="ADD"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"/>
</RelativeLayout>
编辑:我使用LinearLayout解决了我的问题,但仍然不知道我的第一个解决方案中有什么不正确。如果有人发现它,请与我分享。
答案 0 :(得分:0)
当我的初始id为-1,0或1时,我试图做同样的事情并遇到奇怪的问题。将它设置为更高的初始数字(我将其设置为4)并且突然一切都按预期工作。我想原因是这些值代表<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
<xsl:output indent="yes" method="html"/>
<xsl:template match="/*">
<html>
<body>
<table border="1">
<xsl:apply-templates/>
</table>
</body>
</html>
</xsl:template>
<xsl:template match="item">
<tr>
<td><xsl:value-of select="@name"/></td>
<td>
<xsl:apply-templates/>
</td>
</tr>
</xsl:template>
<xsl:template match="run">
<xsl:value-of select="." separator=""/>
</xsl:template>
<xsl:template match="popuptext" />
</xsl:stylesheet>
类中的常量。