0

如何在视图元素之间添加 TextView/Button。

我正在从服务器获取评论及其回复,如果评论有回复,那么它将显示查看回复按钮,当用户触摸该按钮时,它将获取该评论的回复并仅在该评论下方显示。当用户再次按下回复时按钮,它会消失

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:fillViewport="true"
            android:orientation="vertical" >

                    <LinearLayout
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:orientation="vertical"
                    android:id="@+id/commentScrollLayout"

                    >



                   </LinearLayout>

            </ScrollView>

获取的评论添加到 LinearLayout-id-commentScrollLayout 中,所以我的问题是如何插入/删除对该评论的回复?

4

2 回答 2

3

您可以使用addView方法LinearLayout。此方法采用第二个参数 - 要插入视图的位置索引。现在您需要根据按下的评论确定此索引。您可以为此使用indexOfChild方法:

View pressedComment; // Comment pressed by user.
LinearLayout comments = (LinearLayout) findViewById(R.id.commentScrollLayout); 
// Get index of pressed comment.
int index = comments.indexOfChild(pressedComment);
// Create reply text view.
TextView reply = ..;
// Insert reply after the comment.
comments.addView(reply, index + 1);

对于删除,您可以按索引删除回复,或者如果您在某处保存了视图,则可以按视图删除。检查removeViewremoveViewAt

于 2012-12-27T13:05:24.480 回答
-1

您可以使用这 2 个命令删除和添加视图。

View.removeView();
View.addView();

通过调用获取视图

findViewById(R.id.yourviewid);

在代码中创建视图:

TextView tv = new TextView(this);

例子

添加视图

LinearLayout ll = (LinearLayout) findViewByid(R.id.commentScrollLayout);
TextView tv = new TextView(this);
tv.setId(1337);
tv.setText("Test");
ll.addView(tv);

删除视图

LinearLayout ll = (LinearLayout) findViewByid(R.id.commentScrollLayout);
TextView tv = (TextView) findViewByid(1337);
ll.removeView(tv);

或者

使 TextView 全局化,您不需要 id。

于 2012-12-27T13:07:38.560 回答