ListView不以横向模式显示所有项目

时间:2017-11-04 13:27:06

标签: android android-layout scrollview landscape-portrait

我有一个Activity符合纵向模式下的屏幕尺寸,如下图所示

enter image description here

问题是当我旋转屏幕时,ListView会折叠并只显示一个项目,如下图所示

enter image description here

导致此问题的以及如何可以解决此问题?

这是我的xml布局文件

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fillViewport="true">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@android:color/holo_red_dark"
        android:orientation="vertical">

        <TextView
            android:id="@+id/randomWordLabel"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="dfdfdf"
            android:textColor="@android:color/white"
            android:textSize="50sp"
            android:padding="10dp"
            android:layout_gravity="center_horizontal"/>

        <android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
            xmlns:app="http://schemas.android.com/apk/res-auto"
            xmlns:tools="http://schemas.android.com/tools"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            tools:context="com.example.yousaf.mcqstest.GamePlay"
            android:id="@+id/listViewContainer">

            <ListView
                android:id="@+id/myListView"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="20dp"
                android:background="#fff"
                android:dividerHeight="7dp"
                android:padding="10dp">
            </ListView>

        </android.support.constraint.ConstraintLayout>

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:layout_gravity="center"
            android:paddingTop="15dp">

            <TextView
                android:id="@+id/textPoints"
                android:layout_width="200dp"
                android:layout_height="wrap_content"
                android:text="Points : "
                android:textSize="22sp"
                android:textColor="#fff"
                android:layout_gravity="center"
                android:gravity="center"/>

            <TextView
                android:id="@+id/textPointsValue"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="0"
                android:textSize="22sp"
                android:textColor="#fff"
                android:layout_gravity="center" />

        </LinearLayout>


        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:layout_gravity="center"
            android:paddingTop="15dp">

            <TextView
                android:id="@+id/textCorrectAnswers"
                android:layout_width="200dp"
                android:layout_height="wrap_content"
                android:text="Correct Answers : "
                android:textSize="22sp"
                android:textColor="#fff" />

            <TextView
                android:id="@+id/textCorrectAnswersValue"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="0"
                android:textSize="22sp"
                android:textColor="#fff" />

        </LinearLayout>


        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:layout_gravity="center"
            android:paddingTop="20dp">

            <TextView
                android:id="@+id/textWrongAnswers"
                android:layout_width="200dp"
                android:layout_height="wrap_content"
                android:text="Wrong Answers   : "
                android:textSize="22sp"
                android:textColor="#fff" />

            <TextView
                android:id="@+id/textWrongAnswersValue"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="0"
                android:textSize="22sp"
                android:textColor="#fff" />

        </LinearLayout>

        <Button
            android:id="@+id/btnStopGame"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Stop"
            android:textColor="@android:color/white"
            android:textSize="20sp"
            android:padding="15dp"
            android:background="#222"
            android:layout_gravity="center"
            android:layout_marginTop="20dp"
            android:layout_marginBottom="10dp"/>

    </LinearLayout>

</ScrollView>

3 个答案:

答案 0 :(得分:0)

因为列表视图的高度是换行内容。

答案 1 :(得分:0)

请删除ConstraintLayout

<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
            xmlns:app="http://schemas.android.com/apk/res-auto"
            xmlns:tools="http://schemas.android.com/tools"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            tools:context="com.example.yousaf.mcqstest.GamePlay"
            android:id="@+id/listViewContainer"></ConstraintLayout>

我希望这会有效..

答案 2 :(得分:0)

所以我通过

解决了我的问题中提到的问题

1-横向模式的单独布局文件。在layout-land文件夹中创建一个名为res的新文件夹,然后将我的问题中包含的布局文件复制到layout-land文件夹中,然后根据横向肖像进行适当的更改。

2- ListView 的固定高度。在我的情况下,我将ListView的高度设置为190dp

现在我的横向布局如下图所示

enter image description here