我在一项活动中有ListView
和ScrollView
。现在,问题是ListView
和ScollView
无法协同工作。我有很多活动控件,所以我需要使用ListView
。
如果ScrollView在那里,那么ListView的高度会降低,如图所示。
请帮我防止这个问题。
我的代码:
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="20dp" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="20dp" >
<TextView
android:id="@+id/tvRQPoint"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="right"
android:textColor="@color/green"
android:textSize="32sp" />
<TextView
android:id="@+id/tvRQQText"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/questiontext"
android:textColor="@color/blue"
android:textSize="16sp" />
<TextView
android:id="@+id/tvRQQuestion"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="16sp" />
<ImageView
android:id="@+id/imgRQImage"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="3dp"
android:contentDescription="@string/imgdesc" />
<ListView
android:id="@+id/lvRQOptions"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:divider="#b5b5b5"
android:dividerHeight="1dp" />
<TextView
android:id="@+id/tvRQAnswer"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
android:layout_marginTop="10dp" />
<Button
android:id="@+id/btnRQNext"
android:layout_width="fill_parent"
android:layout_height="35dp"
android:layout_gravity="center"
android:layout_marginTop="10dp"
android:text="@string/next" >
</Button>
<Button
android:id="@+id/btnRQEndTest"
android:layout_width="fill_parent"
android:layout_height="35dp"
android:layout_gravity="center"
android:layout_marginTop="10dp"
android:background="@drawable/blue_bg"
android:text="@string/endtest"
android:textColor="@color/white" >
</Button>
</LinearLayout>
</ScrollView>
答案 0 :(得分:0)
永远不要在ListView
内使用ScrollView
。 ListView
本身已经有一个内置滚动,所以你应该使用它,因为你使用的方法违背了Android的设计。
如果您无法删除ScrollView
,则可能应考虑简化设计或以其他方式重新设计。
答案 1 :(得分:0)
您可以做的一件事是只使用listView并将上述元素添加为标题视图,将以下元素添加为页脚视图。
列表视图具有以下属性: addHeaderView(View view); addFooterView(查看视图)
您可以在设置列表适配器之前设置
答案 2 :(得分:0)
嗨,因为@nKn表示在ScrollView中使用ListView并不好,如果有效,它也会提供不好的性能,ListView有自己的滚动属性,你不需要在其中使用scrollview,为listview和其他东西创建单独的布局按照你想要的方式对齐布局。对我来说效果非常好。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:overScrollMode="ifContentScrolls"
android:scrollbarStyle="insideOverlay"
android:scrollbars="vertical" >
<RelativeLayout
android:id="@+id/listContainingLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_above="@+id/buttonsLayout"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:overScrollMode="ifContentScrolls"
android:scrollbarStyle="insideOverlay"
android:scrollbars="vertical" >
<ListView
android:id="@id/android:list"
android:layout_width="wrap_content"
android:layout_height="fill_parent" >
</ListView>
</RelativeLayout>
<LinearLayout
android:id="@+id/buttonsLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:orientation="horizontal" >
<ImageButton
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/button1" />
<ImageButton
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:src="@drawable/button2" />
<ImageButton
android:id="@+id/button3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/button3" />
</LinearLayout>
我建议您根据优先级对齐按钮,如果您希望按钮固定在屏幕上,则可以使用上面的格式,但如果您希望按钮位于列表后面,则对齐 buttonsLayout
< EM>以下 listContainingLayout
希望它有所帮助,干杯!...
答案 3 :(得分:-1)
ListView已经具有滚动功能。这就是ScrollView中出现问题的原因。但是尝试给你的ListView提供硬编码宽度。愿这解决问题
<ListView
android:id="@+id/lvRQOptions"
android:layout_width="fill_parent"
android:layout_height="300dp"
android:layout_marginTop="8dp"
android:divider="#b5b5b5"
android:dividerHeight="1dp" />