gpt4 book ai didi

android - 填写父级不在我的 ListView 上工作

转载 作者:行者123 更新时间:2023-11-30 04:36:21 24 4
gpt4 key购买 nike

这是我的 xml 代码。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="#E7F7FF" android:gravity="top">
<!-- Header text here -->
<TextView />
<!-- Scrollable layout -->
<ScrollView >
<RelativeLayout android:layout_height="fill_parent" android:layout_marginTop="5dip" android:layout_width="fill_parent">
<LinearLayout >
<ImageView />
</LinearLayout>
<LinearLayout >
<TextView />
<TextView />
<FrameLayout android:layout_width="fill_parent" android:layout_height="wrap_content">
<ListView android:id="@+id/contact_number_list_view" android:layout_width="fill_parent" android:layout_weight="1" android:layout_height="fill_parent"
android:layout_marginTop="3dp" android:layout_marginBottom="1dp" android:layout_marginRight="5dip" android:clickable="true"
android:cacheColorHint="#00000000" android:divider="@android:color/transparent" android:dividerHeight="2dip" android:fastScrollEnabled="true"
android:fadeScrollbars="true" android:listSelector="@drawable/rounded_corner_item_selecter" android:layout_gravity="top"></ListView>
<TextView />
</FrameLayout>
</LinearLayout>

<!-- Show tags details layout -->
<LinearLayout >
<TableLayout >

</TableLayout>
</LinearLayout>
</RelativeLayout>
</ScrollView>
<!-- Now button layouts here -->
<LinearLayout >
<Button />
<Button/>
<Button />
</LinearLayout>
</RelativeLayout>

我想将 ListView 扩展为其中的数据数量。但它并没有扩大规模。为什么?

最佳答案

正如在此 video 中执行 listView 的程序员所解释的那样来自 GoogleIo 从不将 ListView 放入 ScrollView 中。如果您的列表不应滚动,请像线性布局一样使用 ViewGroup,并在代码中循环将所有项目添加到此 ViewGroup。如果您希望整行都可点击,您必须使用另一个 ViewGroup 作为每一行的根节点,并将 OnClickListener 添加到此 View 。

所以只需将 ListView 替换为 LinearLayout 即可

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

并且让您使用两个 TextView 作为 ListView 的自定义行。所以自定义行 View 将是 row_view_layout.xml 为

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<TextView android:layout_width="wrap_content"
android:clickable="true"
android:id="@+id/row_view_layout_text1"
android:layout_height="wrap_content" />
<TextView android:id="@+id/row_view_layout_text2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:clickable="true"/>
</LinearLayout>

示例代码:

//Let you were using two TextView as custom row of list view.
LinearLayout list = (LinearLayout)findViewById(R.id.linear_layout_which_is_present_at_place_of_list_view);
LayoutInflater inflater = LayoutInflater.from(context);
list.removeAllViews(); //Remove previously created views
for(String row : getAllRow()) {
View vi = inflater.inflate(R.layout.row_view_layout, null);
textOne = (TextView) vi.findViewById(R.id.row_view_layout_text1);
textTwo = (TextView) vi.findViewById(R.id.row_view_layout_text2);

final String t1 = row.getFirstValue();
final String t2 = row.getSecondValue();

textOne.setText(t1);
textTwo.setText(t2);

//Set listener for both text views

textOne.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Toast.makeText(context, "You clicked on : " + t1 , Toast.LENGTH_SHORT).show();
}
});

textTwo.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Toast.makeText(context, "You clicked on : " + t2 , Toast.LENGTH_SHORT).show();
}
});

//Add view
list.addView(vi);
}

希望这会有所帮助。

快乐编码。

关于android - 填写父级不在我的 ListView 上工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6774931/

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