Android 23及更小版本未以横向模式填充所有屏幕

时间:2017-06-13 15:41:43

标签: java android tablelayout landscape

我创建了一个使用动态表的应用程序,我的XML代码是:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:scrollbars="none">

<include
    android:id="@id/action_bar"
    layout="@layout/actionbar_toolbar" />

<HorizontalScrollView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@id/action_bar">

    <ScrollView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">

        <TableLayout
            android:id="@+id/table"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
             android:stretchColumns="*">

        </TableLayout>
    </ScrollView>
</HorizontalScrollView>

该表从代码中获取所有值。我的问题是,在Android 23及更低版本中,当您将屏幕方向放在横向模式时,屏幕看起来像:

landscape 23

但在Android 24及更高版本中,屏幕看起来不错:

landscape 24

P.D:match_parent属性不起作用。

1 个答案:

答案 0 :(得分:0)

不知道为什么它显示不同,从我能理解的显示它应该考虑布局属性(即所有wrap_content),没有任何迹象表明它应该填充父母。 但是,将水平ScrollView的fillViewPort属性及其宽度更改为match_parent可以完成这项工作。

https://developer.android.com/reference/android/widget/ScrollView.html#attr_android:fillViewport

    ...
    <HorizontalScrollView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:fillViewport="true">
    ...