android 如何自动收缩 imageview 根据屏幕大小在 tablayout 吗?

发布时间: 2016/10/10 21:02:58
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我设置 4 表行重量为 1。在不同的屏幕大小效果很好。它会自动收缩和显示所有的图像,并适合屏幕。

,但是当我在它里面的 Tablayout fragment ,内容不会显示所有; 正如你可以看到从屏幕截图。谁知道大笔的问题吗?谢谢。

enter image description here

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
tools:context="com.example.template_tab.frag_two"
android:orientation="vertical">

<TableRow
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_weight="1">

    <ImageView
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:id="@+id/img0"
        android:src="@drawable/sample_0"
        android:layout_weight="1" />

    <ImageView
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:id="@+id/img1"
        android:src="@drawable/sample_1"
        android:layout_weight="1" />

    <ImageView
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:id="@+id/img2"
        android:src="@drawable/sample_2"
        android:layout_weight="1" />

    <ImageView
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:id="@+id/img3"
        android:src="@drawable/sample_3"
        android:layout_weight="1" />
</TableRow>

<TableRow
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_weight="1">
    <ImageView
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:id="@+id/img4"
        android:src="@drawable/sample_4"
        android:layout_weight="1" />

    <ImageView
        android:layout_width="9dp"
        android:layout_height="wrap_content"
        android:id="@+id/img5"
        android:src="@drawable/sample_5"
        android:layout_weight="1" />

    <ImageView
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:id="@+id/img6"
        android:src="@drawable/sample_6"
        android:layout_weight="1" />

    <ImageView
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:id="@+id/img7"
        android:src="@drawable/sample_7"
        android:layout_weight="1" />

</TableRow>

<TableRow
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_weight="1">
    <ImageView
        android:layout_width="9dp"
        android:layout_height="wrap_content"
        android:id="@+id/img8"
        android:src="@drawable/sample_8"
        android:layout_weight="1" />

    <ImageView
        android:layout_width="9dp"
        android:layout_height="wrap_content"
        android:id="@+id/img9"
        android:src="@drawable/sample_9"
        android:layout_weight="1" />

    <ImageView
        android:layout_width="9dp"
        android:layout_height="wrap_content"
        android:id="@+id/img10"
        android:src="@drawable/sample_10"
        android:layout_weight="1" />

    <ImageView
        android:layout_width="9dp"
        android:layout_height="wrap_content"
        android:id="@+id/img11"
        android:src="@drawable/sample_11"
        android:layout_weight="1" />

</TableRow>

<TableRow
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_weight="1">

    <ImageView
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:id="@+id/result"
        android:src="@drawable/sample_0"
        android:layout_weight="1" />

    <TextView
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:id="@+id/display_text"
        android:text="1908, 1920, 1932, 1944, 1956, 1968, 1980, 1992, 2004, 2016, 2028, 2040, 2052, 2064"
        android:layout_weight="1" />
</TableRow>
</LinearLayout>

解决方法 1:

你真的不需要 TableRow 对于你的情况,也 TableRow 应该在内部使用 TableLayout

设置父项 viewmatch_parent 而不是wrap_content

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.template_tab.frag_two"
android:orientation="vertical">

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="1"
    android:orientation="horizontal">

    <ImageView
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:id="@+id/img0"
        android:src="@drawable/sample_0"
        android:layout_weight="1" />

    <ImageView
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:id="@+id/img1"
        android:src="@drawable/sample_1"
        android:layout_weight="1" />

    <ImageView
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:id="@+id/img2"
        android:src="@drawable/sample_2"
        android:layout_weight="1" />

    <ImageView
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:id="@+id/img3"
        android:src="@drawable/sample_3"
        android:layout_weight="1" />
</LinearLayout>

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="1"
    android:orientation="horizontal">
    <ImageView
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:id="@+id/img4"
        android:src="@drawable/sample_4"
        android:layout_weight="1" />

    <ImageView
        android:layout_width="9dp"
        android:layout_height="wrap_content"
        android:id="@+id/img5"
        android:src="@drawable/sample_5"
        android:layout_weight="1" />

    <ImageView
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:id="@+id/img6"
        android:src="@drawable/sample_6"
        android:layout_weight="1" />

    <ImageView
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:id="@+id/img7"
        android:src="@drawable/sample_7"
        android:layout_weight="1" />

</LinearLayout>

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="1"
    android:orientation="horizontal">
    <ImageView
        android:layout_width="9dp"
        android:layout_height="wrap_content"
        android:id="@+id/img8"
        android:src="@drawable/sample_8"
        android:layout_weight="1" />

    <ImageView
        android:layout_width="9dp"
        android:layout_height="wrap_content"
        android:id="@+id/img9"
        android:src="@drawable/sample_9"
        android:layout_weight="1" />

    <ImageView
        android:layout_width="9dp"
        android:layout_height="wrap_content"
        android:id="@+id/img10"
        android:src="@drawable/sample_10"
        android:layout_weight="1" />

    <ImageView
        android:layout_width="9dp"
        android:layout_height="wrap_content"
        android:id="@+id/img11"
        android:src="@drawable/sample_11"
        android:layout_weight="1" />

</LinearLayout>

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="1"
    android:orientation="horizontal">

    <ImageView
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:id="@+id/result"
        android:src="@drawable/sample_0"
        android:layout_weight="1" />

    <TextView
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:id="@+id/display_text"
        android:text="1908, 1920, 1932, 1944, 1956, 1968, 1980, 1992, 2004, 2016, 2028, 2040, 2052, 2064"
        android:layout_weight="1" />
</LinearLayout>
</LinearLayout>
赞助商