Я хочу добавить кнопку, которая добавит взгляды один под другим. Я не хочу Listview. Я пробовал настройки id на каждом представлении, а затем добавляю с помощью setID, но когда я нажимаю на кнопку, представления создаются без проблем на одном и том же месте.RelativeLayout добавить несколько видов друг под друга
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>
EDIT: Я решить мою проблему с помощью LinearLayout, но до сих пор не знаю, что это неправильно в моем первом растворе. Если кто-то обнаружит это, пожалуйста, поделитесь со мной.
Почему вы не используете linearLayout? – JCDecary
Потому что я хочу, чтобы он был доступен для просмотра и думал, что если setId может быть полезным – Expiredmind
, вы можете использовать setTag и getTag – JCDecary