gpt4 book ai didi

android - Listview 在 Android 上禁用内部滚动

转载 作者:行者123 更新时间:2023-11-29 14:34:02 28 4
gpt4 key购买 nike

我有一个需要完整滚动的布局。该布局在底部包含一个 ListView ,这引起了一些不和谐。这是正在发生的事情: listviewderp

因此您可以看到底部在它自己的小世界中滚动,我需要禁用它以便它增长并扩展整个布局以进行滚动。我试过将它全部封装在 <scrollview><linearlayout>mystuff</linearlayout></scrollview> 中,无济于事。我尝试了 "match_parent" 的无限组合和 "wrap_content" layout_heights .我真的需要 listview 向外扩展,而无需将自己置于自己的滚动世界中。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center"
>
<TableLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<TableRow>
<TableLayout android:layout_span="2"
android:layout_width="fill_parent"
android:layout_weight="1">
<TableRow android:gravity="center">
<Button android:id="@+id/vin_btn"
android:width="@dimen/inb_btn_w"
android:height="@dimen/inb_btn_h"
android:text="@string/inb_vin_btn"
android:textSize="@dimen/inb_txt_sz" />
<Button android:id="@+id/clear_btn"
android:width="@dimen/inb_btn_w"
android:height="@dimen/inb_btn_h"
android:text="@string/inb_sc_btn"
android:textSize="@dimen/inb_txt_sz" />
<Button android:id="@+id/transmit_btn"
android:width="@dimen/inb_btn_w"
android:height="@dimen/inb_btn_h"
android:text="@string/inb_tr_btn"
android:textSize="@dimen/inb_txt_sz"/>
</TableRow>
</TableLayout>
</TableRow>
<TableRow android:gravity="center_vertical"
android:layout_width="fill_parent">
<TextView
android:gravity="right"
android:id="@+id/text_cust"
android:textSize="@dimen/inb_txt_sz"
android:text="@string/inb_cust"/>
<Spinner
android:layout_width="fill_parent"
android:layout_weight="1"
android:id="@+id/cust_spn"/>
</TableRow>
<TableRow android:layout_width="fill_parent">
<TextView
android:gravity="right"
android:id="@+id/text_drv"
android:textSize="@dimen/inb_txt_sz"
android:text="@string/inb_drv"/>
<EditText
android:id="@+id/drv_in"
android:inputType="number"
android:layout_width="fill_parent"
android:layout_weight="1"
android:singleLine="true"/>
</TableRow>
<TableRow android:gravity="center_vertical">
<TextView
android:gravity="right"
android:id="@+id/text_prd"
android:textSize="@dimen/inb_txt_sz"
android:text="@string/inb_prd"/>
<Spinner
android:id="@+id/prd_spn"
android:layout_width="fill_parent"
android:layout_weight="1"/>
</TableRow>
<TableRow android:gravity="center_vertical">
<TextView
android:gravity="right"
android:id="@+id/text_scale"
android:textSize="@dimen/inb_txt_sz"
android:text="@string/inb_scale"/>
<Spinner
android:id="@+id/scale_spn"
android:layout_width="fill_parent"
android:layout_weight="1"/>
</TableRow>
<TableRow android:gravity="center_vertical">
<TextView
android:gravity="right"
android:id="@+id/text_dir"
android:textSize="@dimen/inb_txt_sz"
android:text="@string/inb_dir"/>
<Spinner
android:id="@+id/dir_spn"
android:layout_width="fill_parent"
android:layout_weight="1"/>
</TableRow>
<TableRow>
<TextView
android:gravity="right"
android:id="@+id/text_make"
android:textSize="@dimen/inb_txt_sz"
android:text="@string/inb_make"/>
<EditText
android:id="@+id/make_in"
android:singleLine="true"
android:layout_width="fill_parent"
android:layout_weight="1"/>
</TableRow>
<TableRow>
<TextView
android:gravity="right"
android:id="@+id/text_tag"
android:textSize="@dimen/inb_txt_sz"
android:text="@string/inb_tag"/>
<EditText
android:id="@+id/tag_in"
android:singleLine="true"
android:layout_width="fill_parent"
android:layout_weight="1"/>
</TableRow>
</TableLayout>
<ListView android:id="@+id/vin_list"
android:isScrollContainer="false"
android:layout_weight="1"
android:layout_height="match_parent"
android:layout_width="match_parent" />
</LinearLayout>

行布局定义如下:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:padding="4dip">
<TableLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:gravity="center_vertical|left">
<TableRow>
<TextView android:id="@+id/vin"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="20sp"/>
</TableRow>
<TableRow>
<TextView android:id="@+id/desc"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="12sp"/>
</TableRow>
</TableLayout>
</LinearLayout>

最佳答案

首先,为您的布局添加一个 ScrollView 作为根项,它将允许您在布局中的所有项之间滚动(这对于小屏幕手机上的现有 TableLayout 是必需的)。

然后将 ListView 替换为垂直的 LinearLayout,并使用类似的方法手动扩充所需的行数:

LinearLayout llContainer = (LinearLayout) findViewById(R.id.yourBottomLinearLayout);

LayoutInflater inflater = LayoutInflater.from(getApplicationContext());

for (Item item : mListItems){
LinearLayout llItem = (LinearLayout) inflater.inflate(R.layout.row, null);
TextView vin = (TextView) llItem.findViewById(R.id.vin);
vin.setText(item.getFirstText());
TextView desc = (TextView) llItem.findViewById(R.id.desc);
desc.setText(item.getSecondText());
// To know wich item has been clicked
llItem.setTag(item.getId());
// In the onClickListener just get the id using getTag() on the view
llItem.setOnClickListener(this);
llContainer.addView(llItem);
}

您的 ScrollView 将根据需要增加大小,您将能够在整个屏幕上滚动。

关于android - Listview 在 Android 上禁用内部滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7017432/

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