1

我有一个 xml 文件,其中 UI 元素按以下顺序排列。我正在解析的数据正在列表视图中填充,但列表视图不可滚动。请帮助我

ImageView
TextView
imageView
ListView
imageView

布局.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>
4

5 回答 5

2

Listview将inside放置在这里是一个很大的错误Scrollview。删除Scrollview并将用户RelativeLayout作为顶级父级,并且Listview将滚动。

此外,用户体验建议永远不要使用两个可滚动的项目,因为用户永远无法知道必须滚动的内容。同样,您将无法识别用户尝试滚动的内容。

建议


你可以做一件事。只需将您的 TextView 保持在 Scrollview 内并在其下方保持您的listview但不要使整个布局可滚动。即两个元素可以滚动,但不能滚动元素的整个屏幕。

于 2013-09-27T07:01:06.240 回答
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;
        }
    });
于 2013-09-30T09:32:25.187 回答
0

ListView 不需要在 ScrollView 内部使其可滚动,因为如果内容太长,ListView 将是可滚动的。

于 2013-09-27T07:07:36.897 回答
0

永远不要将 listView 放在 scrollView 中。永远不能。

观看他的精彩视频以了解更多 abt listView

http://www.youtube.com/watch?v=wDBM6wVEO70

于 2013-09-27T07:06:22.467 回答
0

您可以将列表视图放在滚动视图中。请参阅此https://stackoverflow.com/a/18354096/942224

并设置listview的这个值

yourListView.setExpanded(true);
于 2013-09-27T07:13:00.940 回答