Android列表视图setOnItemClickListener仅在以下情况下工作
我有一个Android布局。我已经设置了一个类似list.setOnItemClickListener的侦听器。一切似乎都很好 在下面的行中:Android列表视图setOnItemClickListener仅在以下情况下工作,android,onitemclicklistener,android-wrap-content,Android,Onitemclicklistener,Android Wrap Content,我有一个Android布局。我已经设置了一个类似list.setOnItemClickListener的侦听器。一切似乎都很好 在下面的行中: <ScrollView android:layout_width="fill_parent" android:layout_height="wrap_content"> fill_parent已弃用并重命名为API级别8及更高版本中的MATCH_parent 将小部件的布局设置为填充父项将迫使其展开,以在其所在的布局
<ScrollView android:layout_width="fill_parent"
android:layout_height="wrap_content">
fill_parent已弃用并重命名为API级别8及更高版本中的MATCH_parent
将小部件的布局设置为填充父项将迫使其展开,以在其所在的布局元素中占据尽可能多的可用空间。这大致相当于将Windows窗体控件的dockstyle设置为Fill
将顶层布局或控件设置为填充父项将强制它占据整个屏幕
包装内容
将视图的大小设置为“包装”内容将强制其仅扩展到足以包含其包含的值或子控件的程度。对于控件(如文本框TextView或图像ImageView),这将包装显示的文本或图像。对于布局元素,它将调整布局大小,以适合作为其子级添加的控件/布局
Android代码文档中有一些详细信息。您的滚动视图占用了ListView中可以在屏幕上填充的所有可用空间,基本上覆盖了它
永远不要将ScrollView与ListView一起使用,因为ListView负责自己的垂直滚动。最重要的是,这样做会破坏ListView中处理大型列表的所有重要优化,因为它有效地迫使ListView显示其整个项目列表,以填充ScrollView提供的无限容器-从它将不起作用,因为使用fill\u parent将尝试填充FrameLayout内的所有区域,但是也存在一个ListView android:id=@+id/包括。也许一个解决方案是将ScrollView放在另一个RelativeView中,并将其放在ListView的下面android:id=@+id/Restaurants执行测试:将ListView背景色更改为黑色,将ScrollView背景色更改为红色。看看你的观点是什么。它可以填充listView上面的所有空间。
<?xml version="1.0" encoding="utf-8"?>
<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/tabhost"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TabWidget android:id="@android:id/tabs"
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>
<FrameLayout android:id="@android:id/tabcontent"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<ListView android:id="@+id/restaurants"
android:layout_width="match_parent"
android:layout_height="match_parent"
/>
<ScrollView android:layout_width="fill_parent"
android:layout_height="wrap_content">
<TableLayout android:id="@+id/details"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:stretchColumns="1"
android:shrinkColumns="1"
android:paddingTop="4dip"
>
<TableRow>
<TextView android:text="@string/name" />
<EditText android:id="@+id/name" />
</TableRow>
<TableRow>
<TextView android:text="@string/address" />
<EditText android:id="@+id/addr" />
</TableRow>
<TableRow>
<TextView android:text="Type:" />
<RadioGroup android:id="@+id/types">
<RadioButton android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:id="@+id/take_out"
android:text="@string/takeout"
android:checked="true"
/>
<RadioButton android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:id="@+id/sit_down"
android:text="@string/sitdown"
/>
<RadioButton android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:id="@+id/delivery"
android:text="@string/delivery"
/>
</RadioGroup>
</TableRow>
<TableRow>
<TextView android:text="@string/notes" />
<EditText android:id="@+id/notes" />
</TableRow>
<Button android:id="@+id/save"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/save"
/>
</TableLayout>
</ScrollView>
</FrameLayout>
</LinearLayout>
</TabHost>