我有一个xml文件,其中UI元素按以下顺序排列。我正在解析的数据正在listView上填充,但listView不可滚动。请帮助我
ImageView
TextView
imageView
ListView
imageView
layout.xml
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/scrollView_description"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fillViewport="true"
android:orientation="vertical" >
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#ffffff"
android:focusableInTouchMode="true"
android:orientation="vertical" >
<ImageView
android:id="@+id/imageView_now_playing"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:scaleType="fitXY" />
<TextView
android:id="@+id/textView_DailyLimit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/imageView_now_playing"
android:layout_centerHorizontal="true"
android:layout_marginLeft="15dp"
android:layout_marginRight="15dp"
android:layout_marginTop="2dp"
android:textAppearance="?android:attr/textAppearanceMedium" />
<LinearLayout
android:id="@+id/linearLayout1"
android:layout_width="match_parent"
android:layout_height="200dp"
android:layout_below="@+id/button_PlayArea"
android:layout_marginTop="20dp"
android:background="#ffffff"
android:orientation="vertical" >
<ListView
android:id="@+id/listViewEpisodes"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:cacheColorHint="#000000"
android:divider="@android:color/black"
android:dividerHeight="5dp"
android:textColor="#000000" />
</LinearLayout>
<ImageView
android:id="@+id/button_Characters"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/linearLayout1"
android:layout_marginTop="20dp"
android:scaleType="fitXY"
android:src="@drawable/gallery" />
<ImageView
android:id="@+id/button_PlayArea"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/textView_DailyLimit"
android:layout_marginTop="20dp"
android:scaleType="fitXY" />
</RelativeLayout>
</ScrollView>
答案 0 :(得分:2)
将Listview
放在Scrollview
内,你犯了一个大错误。移除Scrollview
和用户RelativeLayout
作为Top父级,Listview
将滚动。
此外,UX建议永远不会在侧面使用两个可滚动项目 因为用户永远无法知道必须是什么 滚动。同样,您也无法识别用户是什么 试图滚动。
<强>建议强>
你可以做一件事。只需将您的TextView保留在Scrollview内部及其下方,即可保留listview
但不要使整个布局可滚动。即两个元素可以滚动,但不能滚动整个屏幕。
答案 1 :(得分:1)
ListView lv = (ListView)findViewById(R.id.myListView); // your listview inside scrollview
lv.setOnTouchListener(new ListView.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
int action = event.getAction();
switch (action) {
case MotionEvent.ACTION_DOWN:
// Disallow ScrollView to intercept touch events.
v.getParent().requestDisallowInterceptTouchEvent(true);
break;
case MotionEvent.ACTION_UP:
// Allow ScrollView to intercept touch events.
v.getParent().requestDisallowInterceptTouchEvent(false);
break;
}
// Handle ListView touch events.
v.onTouchEvent(event);
return true;
}
});
答案 2 :(得分:0)
永远不要将listView放在scrollView中。从来没有。
观看他的精彩视频,了解更多abt listView
答案 3 :(得分:0)
在ScrollView内部不需要ListView使其可滚动,因为如果内容太长,ListView将是可滚动的。
答案 4 :(得分:0)
您可以将listview放在scrollview中。见https://stackoverflow.com/a/18354096/942224
并设置listview的这个值
yourListView.setExpanded(true);