gpt4 book ai didi

android - 以编程方式构建布局问题

转载 作者:行者123 更新时间:2023-11-29 15:32:16 27 4
gpt4 key购买 nike

我正在构建类似 ListView 的东西,但我正在推出自己的东西,因为我想做一些自定义的事情并且比使用 ArrayAdapter 有更多的控制权。

所以我已经用 XML 定义了部分布局,包括 ScrollView 内的一个 LinerLayout。我的目标是在代码中绑定(bind)到该 Linearlayout,然后不使用 XML,仅使用代码在 LinearLayout 中插入其他 RelativeLayout。

这是我的 XML:

            <ScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/ListScroll"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:id="@+id/ListHolder"
android:layout_height="400px"
android:background="#323232"
>
<!--Here is where I want the RelativeLayouts to go... -->
</LinearLayout>
</ScrollView>

然后在代码中,我试图将 RelativeLayouts,每个 50px 的高度,添加到 LinearLayout,上面那个有 400px 的高度。

                //The parent container - is defined above in XML.
itemContainer = new LinearLayout(context);
itemContainer = (LinearLayout)findViewById(R.id.ListHolder);
Layouts = new ArrayList<RelativeLayout>();
Layouts = LoadWithRelativeLayouts();

for(RelativeLayout listItem: Layouts){

RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.FILL_PARENT, 40);
listItem.setLayoutParams(params);
itemContainer.addView(listItem);
}

数组中的每个布局都有一个 TextView ,上面写着“测试”。当我单步执行代码时,数组中有 10 个元素,所有的 TextView 都在那里,所以我希望看到 400px LinearLayout 依次填充 10 个 Relative 布局,每个布局的高度为 50px(和 fill_parent 宽度)阅读“测试”-但我所看到的只是一个,好像只添加了一个,或者它们都位于彼此之上。

正在获取屏幕截图...

最佳答案

当您向布局添加内容时,您必须使用那种 布局参数。因此,当您向 LinearLayout 添加内容时,您应该使用 LinearLayout.LayoutParams

然后你可能还需要将你的 LinearLayout 方向设置为垂直,因为现在你看不到的项目都排在屏幕外的右边:)

关于android - 以编程方式构建布局问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5205202/

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