我在ImageView
- > TableLayout
中有多个TableRow
个组件。当它们的高度向下缩小时,它们的宽度保持原始尺寸,在相邻列之间留下很大的空间。如何将宽度调整到最小以具有近旁列?
我已经尝试过使用android:adjustViewBounds
- 但没有任何反应。在视图上设置固定值有效 - 但我讨厌它加上它不允许缩放UI。
Image showing current and desired layout.(与 tl; tr 部分相同)
Android Studio 2.2.3
分钟。 SDK:API 19
目标SDK:API 25
@drawable/ic_placeholder
尺寸:46x46px PNG
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
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="40dp"
tools:context="...">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
tools:src="@drawable/ic_placeholder" />
<Space
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1" />
<TableLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="end">
<TableRow
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_weight="1"
android:gravity="end">
<ImageView
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:adjustViewBounds="true"
android:paddingLeft="2dp"
android:paddingRight="2dp"
tools:src="@drawable/ic_placeholder" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:adjustViewBounds="true"
android:paddingLeft="2dp"
android:paddingRight="2dp"
tools:src="@drawable/ic_placeholder" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:adjustViewBounds="true"
android:paddingLeft="2dp"
android:paddingRight="2dp"
tools:src="@drawable/ic_placeholder" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:adjustViewBounds="true"
android:paddingLeft="2dp"
android:paddingRight="2dp"
tools:src="@drawable/ic_placeholder" />
</TableRow>
</TableLayout>
</LinearLayout>
答案 0 :(得分:0)
看看它是否符合您的需求:
<?xml version="1.0" encoding="utf-8"?>
<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="40dp"
android:orientation="horizontal"
tools:context="...">
<ImageView
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:adjustViewBounds="true"
android:scaleType="centerInside"
tools:src="@drawable/ic_placeholder" />
<Space
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1" />
<TableLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:shrinkColumns="*">
<TableRow
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:adjustViewBounds="true"
android:paddingLeft="2dp"
android:paddingRight="2dp"
android:scaleType="centerInside"
tools:src="@drawable/ic_placeholder" />
<ImageView
android:adjustViewBounds="true"
android:paddingLeft="2dp"
android:paddingRight="2dp"
android:scaleType="centerInside"
tools:src="@drawable/ic_placeholder" />
<ImageView
android:adjustViewBounds="true"
android:paddingLeft="2dp"
android:paddingRight="2dp"
android:scaleType="centerInside"
tools:src="@drawable/ic_placeholder" />
<ImageView
android:adjustViewBounds="true"
android:paddingLeft="2dp"
android:paddingRight="2dp"
android:scaleType="centerInside"
tools:src="@drawable/ic_placeholder" />
</TableRow>
</TableLayout>
</LinearLayout>