Я получил The specified child already has a parent. You must call removeView() on the child's parent first.
ОШИБКА.
Но я не хочу удалять родительское представление.
Если вы нажмете кнопку, сообщение должно быть добавлено в конце дочерних представлений LinearLayout.
Это мой код Java:
Button addBTN = findViewById(R.id.addButton);
LinearLayout messageListLL = findViewById(R.id.messageList_LinearLayout);
addBTN.setOnClickListener((v) -> {
MessageItem messageItem = new MessageItem();
View messageView = View.inflate(this, R.layout.item_message, messageListLL);
messageListLL.addView(messageView, messageListLL.getChildCount());
});
Это часть XML-кода активности:
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@id/adView"
android:layout_below="@id/userContainer"
android:background="#CCC"
android:padding="15dp">
<LinearLayout
android:id="@+id/messageList_LinearLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<Button
android:id="@+id/addButton"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:backgroundTint="@color/design_default_color_primary"
android:text="ADD"
android:textColor="@android:color/white" />
</LinearLayout>
</ScrollView>
Это item_message.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<CheckBox
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="left" />
<EditText
android:layout_width="300dp"
android:layout_height="wrap_content" />
<ImageView
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_gravity="right"
android:background="#FFD9D9" />
</LinearLayout>
Итак, я хотел бы сделать представление с item_message
и поместить его в LinearLayout
в xml действия, который имеет messageList_LinearLayout
для атрибута id.
Кнопка также находится в LinearLayout.Кнопка должна быть расположена в конце LinearLayout.
И всякий раз, когда я нажимаю кнопку, необходимо создать представление сообщения и добавить его в конец списка сообщений, а также перед кнопкой.