我将3 TextView
放在LinearLayout
中,并希望它们等分配并具有固定的高度。 layout_weight
和固定layout_height
的组合应该确保所有3个视图始终显示在一行中并始终具有相同的高度。但他们不是。
有人可以解释问题所在吗?我无法找到它......
这是我的LinearLayout
和它的孩子:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:id="@+id/tvMuted"
android:text="@string/color_palette_muted"
android:foreground="?selectableItemBackground"
android:gravity="center"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_margin="4dp"
android:layout_height="64dp">
</TextView>
<TextView
android:id="@+id/tvMutedLight"
android:text="@string/color_palette_muted_light"
android:foreground="?selectableItemBackground"
android:gravity="center"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_margin="4dp"
android:layout_height="64dp">
</TextView>
<TextView
android:id="@+id/tvMutedDark"
android:text="@string/color_palette_muted_dark"
android:foreground="?selectableItemBackground"
android:gravity="center"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_margin="4dp"
android:layout_height="64dp">
</TextView>
</LinearLayout>
这就是我得到的:
答案 0 :(得分:2)
只需在所有TextView中设置android:layout_gravity="center"
,如下所示:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:id="@+id/tvMuted"
android:text="@string/color_palette_muted"
android:foreground="?selectableItemBackground"
android:gravity="center"
android:layout_gravity="center"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_margin="4dp"
android:layout_height="64dp">
</TextView>
<TextView
android:id="@+id/tvMutedLight"
android:text="@string/color_palette_muted_light"
android:foreground="?selectableItemBackground"
android:gravity="center"
android:layout_gravity="center"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_margin="4dp"
android:layout_height="64dp">
</TextView>
<TextView
android:id="@+id/tvMutedDark"
android:text="@string/color_palette_muted_dark"
android:foreground="?selectableItemBackground"
android:gravity="center"
android:layout_gravity="center"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_margin="4dp"
android:layout_height="64dp">
</TextView>
</LinearLayout>
答案 1 :(得分:0)
试试这个
<LinearLayout
android:layout_width="match_parent"
android:orientation="horizontal"
android:weightSum="3"
android:layout_height="wrap_content">
<TextView
android:id="@+id/tvMuted"
android:layout_width="0dp"
android:layout_height="64dp"
android:layout_margin="4dp"
android:layout_weight="1"
android:foreground="?selectableItemBackground"
android:gravity="center"
android:text="MUTED"/>
<TextView
android:id="@+id/tvMutedLight"
android:layout_width="0dp"
android:layout_height="64dp"
android:layout_margin="4dp"
android:layout_weight="1"
android:foreground="?selectableItemBackground"
android:gravity="center"
android:text="MUTED-HELL"/>
<TextView
android:id="@+id/tvMutedDark"
android:layout_width="0dp"
android:layout_height="64dp"
android:layout_margin="4dp"
android:layout_weight="1"
android:foreground="?selectableItemBackground"
android:gravity="center"
android:text="MUTED-DUNKEL"/>
</LinearLayout>
答案 2 :(得分: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:id="@+id/activity_main2"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="com.ncrypted.demoapplications.Main2Activity">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:id="@+id/tvMuted"
android:layout_width="0dp"
android:layout_height="64dp"
android:layout_margin="4dp"
android:layout_weight="1"
android:background="#F00"
android:gravity="center"
android:text="color1" />
<TextView
android:layout_width="0dp"
android:layout_height="64dp"
android:layout_margin="4dp"
android:layout_weight="1"
android:background="#F00"
android:gravity="center"
android:text="color1" />
<TextView
android:layout_width="0dp"
android:layout_height="64dp"
android:layout_margin="4dp"
android:layout_weight="1"
android:background="#F00"
android:gravity="center"
android:text="color1" />
</LinearLayout>
答案 3 :(得分:0)
在每个文本视图中放置此行android:singleLine="true"
这将以单行包装文本
有人可以解释问题所在吗?我找不到......
问题是你的固定高度64dp你被告知要查看该视图应该以中心为中心的文本扩展到64 dp 但是当文本大于文本视图时,文本将从所有方面剪切 这个
有三个选项1 。制作textview hight“ WrapContent ”,但在这种情况下,所有textview的文字长度都不同
2 。制作文字单行 android:singleLine =“true”就像Muted-Dun ...这样基本上它以单行显示你的文字
第3 即可。设置 android:layout_gravity =“center”,但在这种情况下,如果您的文字长度大于文字被剪切
答案 4 :(得分:0)
将属性android:weightSum="3"
和android:gravity="center"
添加到LinearLayout
。
以下是工作代码:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:weightSum="3"
android:gravity="center">
<TextView
android:id="@+id/tvMuted"
android:text="Muted"
android:foreground="?selectableItemBackground"
android:gravity="center"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_margin="4dp"
android:layout_height="64dp"
android:textColor="@android:color/white"
android:background="#958F81">
</TextView>
<TextView
android:id="@+id/tvMutedLight"
android:text="Muted - Hell"
android:foreground="?selectableItemBackground"
android:gravity="center"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_margin="4dp"
android:layout_height="64dp"
android:textColor="@android:color/white"
android:background="#A4A38E">
</TextView>
<TextView
android:id="@+id/tvMutedDark"
android:text="Mmuted - Dunkel"
android:foreground="?selectableItemBackground"
android:gravity="center"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_margin="4dp"
android:layout_height="64dp"
android:textColor="@android:color/white"
android:background="#686868">
</TextView>
</LinearLayout>
<强>输出:强>