gpt4 book ai didi

android - 在 ScrollView 中动态添加 View 到 RelativeLayout

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:04:48 25 4
gpt4 key购买 nike

我正在尝试将动态创建的几个 RelativeLayout 添加到一个 LinearLayout 中,该 LinearLayout 位于一个 RelativeLayout 中,而该 RelativeLayout 位于一个 ScrollView 中。当所有 View 的总高度超过手机屏幕大小时,所有 View 都正确显示。但是当动态添加的 View 的总大小不足以填满屏幕时,只会显示第一个 RelativeLayout 元素,其他元素不会显示在屏幕中。我真的很绝望,不明白为什么。

这是在线性布局中动态填充 View 的代码:

LinearLayout commentsLayout = (LinearLayout) findViewById(R.id.comments_layout);

LayoutInflater inflater = (LayoutInflater)
this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

for(Comment c: commentsList) {

RelativeLayout layoutItem = (RelativeLayout) inflater.inflate(
R.layout.list_item_comment, null, false);

TextView tv = (TextView) layoutItem.findViewById(R.id.textView);
ImageView iv = (ImageView) layoutItem.findViewById(R.id.imageView);

// set tv's text
// set iv's image and onclicklistener, nothing fancy here, everything goes well

commentsLayout.addView(layoutItem);
}

这是 list_item_comment.xml:

<RelativeLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@color/white"
>
<ImageView
android:id="@+id/imageView"
android:layout_width="50dip"
android:layout_height="50dip"
android:layout_alignParentLeft="true"
android:layout_marginTop="10dp"
android:layout_marginLeft="10dp"
/>

<TextView
android:id="@+id/textView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_margin="10dp"
android:textSize="16sp"
android:layout_toRightOf="@id/imageView"
/>
</RelativeLayout>

这是此 Activity 的 xml 文件:

<RelativeLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/main_layout"
>
...

<ScrollView
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:fillViewport="true"
android:id="@+id/scrollView"
>

<RelativeLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/relativeContainer"
>

...

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

</RelativeLayout>

</ScrollView>

</RelativeLayout>

以及截图:

没有足够的布局:(不正确,需要显示 3 条评论)

Incorrect one

有足够的布局:(正确一个,屏幕已满)

correct one

我只需要在第一种情况下显示所有三个评论:/提前致谢。

最佳答案

而不是 fill_parent ,尝试更改 layout_height<RelativeLayout>你的list_item_comment.xmlwrap_content .

另外,为什么你需要另一个 <RelativeLayout>在你的里面 <ScrollView>您的 Activity 的 xml。 LinearLayout足以完成您希望您的 Activity 看起来像什么。也许您可以将其删除。

关于android - 在 ScrollView 中动态添加 View 到 RelativeLayout,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10003148/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com