我有一些线性布局,其中包含一些带有图像的文本。一切都很好,直到我的文字由于缺乏空间而分成2行。 我的图片被文字推高了,我想避免,但我无法实现。
这是我的XML代码:
<?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:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<LinearLayout
android:id="@+id/imagen_entorno"
android:layout_width="match_parent"
android:layout_height="170dp"
android:orientation="vertical"
android:background="@android:color/black">
</LinearLayout>
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#123456"
android:layout_gravity="center"
android:layout_below="@id/imagen_entorno"
android:overScrollMode="never"
android:paddingBottom="75dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:id="@+id/linearRoot"
android:layout_marginTop="12dp"
>
<LinearLayout
android:id="@+id/linear1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:weightSum="3"
android:orientation="horizontal"
android:gravity="center_vertical"
android:layout_gravity="center"
android:layout_marginBottom="5dp">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
<ImageButton
android:id="@+id/boton1"
android:layout_width="@dimen/botones_sonidos"
android:layout_height="@dimen/botones_sonidos"
android:layout_weight="1"
android:layout_marginBottom="2dp"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
/>
<TextView
android:id="@+id/tituloSonido1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Pajaro"
android:layout_gravity="center"
android:textColor="@color/white"
fontPath="fonts/helveticalight.ttf"
tools:ignore="MissingPrefix"/>
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
<ImageButton
android:id="@+id/boton2"
android:layout_width="@dimen/botones_sonidos"
android:layout_height="@dimen/botones_sonidos"
android:layout_weight="1"
android:layout_marginBottom="2dp"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
/>
<TextView
android:id="@+id/tituloSonido2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Pajaro"
android:layout_gravity="center"
android:textColor="@color/white"
fontPath="fonts/helveticalight.ttf"
tools:ignore="MissingPrefix"/>
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
<ImageButton
android:id="@+id/boton3"
android:layout_width="@dimen/botones_sonidos"
android:layout_height="@dimen/botones_sonidos"
android:layout_weight="1"
android:layout_marginBottom="2dp"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
/>
<TextView
android:id="@+id/tituloSonido3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Pajaro"
android:layout_gravity="center"
android:textColor="@color/white"
fontPath="fonts/helveticalight.ttf"
tools:ignore="MissingPrefix"/>
</LinearLayout>
</LinearLayout>
<LinearLayout
android:id="@+id/linear2"
android:layout_below="@id/linear1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:weightSum="3"
android:orientation="horizontal"
android:gravity="center_vertical"
android:layout_gravity="center">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
<ImageButton
android:id="@+id/boton4"
android:layout_width="@dimen/botones_sonidos"
android:layout_height="@dimen/botones_sonidos"
android:layout_weight="1"
android:layout_marginBottom="2dp"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
/>
<TextView
android:id="@+id/tituloSonido4"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Pajaro mas largo aun"
android:singleLine="false"
android:lines="2"
android:layout_below="@id/boton4"
android:gravity="center"
android:textColor="@color/white"
fontPath="fonts/helveticalight.ttf"
tools:ignore="MissingPrefix"/>
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
<ImageButton
android:id="@+id/boton5"
android:layout_width="@dimen/botones_sonidos"
android:layout_height="@dimen/botones_sonidos"
android:layout_weight="1"
android:layout_marginBottom="2dp"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
/>
<TextView
android:id="@+id/tituloSonido5"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Pajaro"
android:gravity="center"
android:textColor="@color/white"
fontPath="fonts/helveticalight.ttf"
tools:ignore="MissingPrefix"/>
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
<ImageButton
android:id="@+id/boton6"
android:layout_width="@dimen/botones_sonidos"
android:layout_height="@dimen/botones_sonidos"
android:layout_weight="1"
android:layout_marginBottom="2dp"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
/>
<TextView
android:id="@+id/tituloSonido6"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Pajaro"
android:gravity="center"
android:textColor="@color/white"
fontPath="fonts/helveticalight.ttf"
tools:ignore="MissingPrefix"/>
</LinearLayout>
</LinearLayout>
<LinearLayout
android:id="@+id/linear3"
android:layout_below="@id/linear1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:weightSum="3"
android:orientation="horizontal"
android:gravity="center_vertical"
android:layout_gravity="center">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
<ImageButton
android:id="@+id/boton7"
android:layout_width="@dimen/botones_sonidos"
android:layout_height="@dimen/botones_sonidos"
android:layout_weight="1"
android:layout_marginBottom="2dp"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
/>
<TextView
android:id="@+id/tituloSonido7"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Pajaro"
android:singleLine="false"
android:lines="2"
android:layout_below="@id/boton4"
android:gravity="center"
android:textColor="@color/white"
fontPath="fonts/helveticalight.ttf"
tools:ignore="MissingPrefix"/>
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
<ImageButton
android:id="@+id/boton8"
android:layout_width="@dimen/botones_sonidos"
android:layout_height="@dimen/botones_sonidos"
android:layout_weight="1"
android:layout_marginBottom="2dp"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
/>
<TextView
android:id="@+id/tituloSonido8"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Pajaro"
android:gravity="center"
android:textColor="@color/white"
fontPath="fonts/helveticalight.ttf"
tools:ignore="MissingPrefix"/>
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
<ImageButton
android:id="@+id/boton9"
android:layout_width="@dimen/botones_sonidos"
android:layout_height="@dimen/botones_sonidos"
android:layout_weight="1"
android:layout_marginBottom="2dp"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
/>
<TextView
android:id="@+id/tituloSonido9"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Pajaro"
android:gravity="center"
android:textColor="@color/white"
fontPath="fonts/helveticalight.ttf"
tools:ignore="MissingPrefix"/>
</LinearLayout>
</LinearLayout>
</LinearLayout>
</ScrollView>
</LinearLayout>
问题的屏幕截图:
任何提示都表示赞赏:)
答案 0 :(得分:2)
使用的视图太多,使用GridView,此链接可以为您提供帮助。
答案 1 :(得分:1)
如果textView中的任何一个因为空间不足而可能会掉落到两行,而不是将每个textView的高度设置行固定为2并应用重心。它将保留与高度相关的所有文本视图。
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:lines="2"
android:text="test"
android:gravity="center"/>
答案 2 :(得分:1)
通过文字提升我的图片的解决方案是通过设置TextView
确定所有 layout_height
的高度
android:layout_height="30dp"
或设置lines
android:lines="1" // or 2,3 ....
如果您只想将图像分割成2行或更多行时将图像保持在原位。你需要使用GridView
答案 3 :(得分:1)
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
weight_sum="4"
android:orientation="vertical">
<ImageButton
android:id="@+id/boton2"
android:layout_width="@dimen/botones_sonidos"
android:layout_height="0dp"
android:layout_weight="3"
android:layout_marginBottom="2dp"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
/>
<TextView
android:id="@+id/tituloSonido2"
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_weight="1"
android:text="Pajaro"
android:layout_gravity="center"
android:textColor="@color/white"
fontPath="fonts/helveticalight.ttf"
tools:ignore="MissingPrefix"/>
</LinearLayout>
避免使用wrap_content来获取修复大小视图。你可以将一个weight_sum属性添加到LinearLayout并为例子4分配一个值。也可以将layout_weight属性添加到子视图中。对于imaveView分配3,为textview分配1,imageview总是比textview大3倍,textview不能侵入imagevies的空间。 ofc你可以为它们分配不同的值,以获得你想要的不同大小的视图。
答案 4 :(得分:1)
用
替换你的布局<?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:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<LinearLayout
android:id="@+id/imagen_entorno"
android:layout_width="match_parent"
android:layout_height="170dp"
android:orientation="vertical"
android:background="@android:color/black">
</LinearLayout>
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#123456"
android:layout_gravity="center"
android:layout_below="@id/imagen_entorno"
android:overScrollMode="never"
android:paddingBottom="75dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:id="@+id/linearRoot"
android:layout_marginTop="12dp"
>
<LinearLayout
android:id="@+id/linear1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:weightSum="3"
android:orientation="horizontal"
android:gravity="center_vertical"
android:layout_gravity="center"
android:layout_marginBottom="5dp">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="top"
android:orientation="vertical">
<ImageButton
android:id="@+id/boton1"
android:layout_width="@dimen/botones_sonidos"
android:layout_height="@dimen/botones_sonidos"
android:layout_weight="1"
android:layout_marginBottom="2dp"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
/>
<TextView
android:id="@+id/tituloSonido1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Pajaro"
android:layout_gravity="center"
android:textColor="@color/white"
fontPath="fonts/helveticalight.ttf"
tools:ignore="MissingPrefix"/>
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="top"
android:orientation="vertical">
<ImageButton
android:id="@+id/boton2"
android:layout_width="@dimen/botones_sonidos"
android:layout_height="@dimen/botones_sonidos"
android:layout_weight="1"
android:layout_marginBottom="2dp"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
/>
<TextView
android:id="@+id/tituloSonido2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Pajaro"
android:layout_gravity="center"
android:textColor="@color/white"
fontPath="fonts/helveticalight.ttf"
tools:ignore="MissingPrefix"/>
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
<ImageButton
android:id="@+id/boton3"
android:layout_width="@dimen/botones_sonidos"
android:layout_height="@dimen/botones_sonidos"
android:layout_gravity="top"
android:layout_weight="1"
android:layout_marginBottom="2dp"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
/>
<TextView
android:id="@+id/tituloSonido3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Pajaro"
android:layout_gravity="center"
android:textColor="@color/white"
fontPath="fonts/helveticalight.ttf"
tools:ignore="MissingPrefix"/>
</LinearLayout>
</LinearLayout>
<LinearLayout
android:id="@+id/linear2"
android:layout_below="@id/linear1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:weightSum="3"
android:orientation="horizontal"
android:gravity="center_vertical"
android:layout_gravity="center">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="top"
android:orientation="vertical">
<ImageButton
android:id="@+id/boton4"
android:layout_width="@dimen/botones_sonidos"
android:layout_height="@dimen/botones_sonidos"
android:layout_weight="1"
android:layout_marginBottom="2dp"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
/>
<TextView
android:id="@+id/tituloSonido4"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Pajaro mas largo aun"
android:singleLine="false"
android:lines="2"
android:layout_below="@id/boton4"
android:gravity="center"
android:textColor="@color/white"
fontPath="fonts/helveticalight.ttf"
tools:ignore="MissingPrefix"/>
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="top"
android:orientation="vertical">
<ImageButton
android:id="@+id/boton5"
android:layout_width="@dimen/botones_sonidos"
android:layout_height="@dimen/botones_sonidos"
android:layout_weight="1"
android:layout_marginBottom="2dp"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
/>
<TextView
android:id="@+id/tituloSonido5"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Pajaro"
android:gravity="center"
android:textColor="@color/white"
fontPath="fonts/helveticalight.ttf"
tools:ignore="MissingPrefix"/>
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="top"
android:orientation="vertical">
<ImageButton
android:id="@+id/boton6"
android:layout_width="@dimen/botones_sonidos"
android:layout_height="@dimen/botones_sonidos"
android:layout_weight="1"
android:layout_marginBottom="2dp"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
/>
<TextView
android:id="@+id/tituloSonido6"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Pajaro"
android:gravity="center"
android:textColor="@color/white"
fontPath="fonts/helveticalight.ttf"
tools:ignore="MissingPrefix"/>
</LinearLayout>
</LinearLayout>
<LinearLayout
android:id="@+id/linear3"
android:layout_below="@id/linear1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:weightSum="3"
android:orientation="horizontal"
android:gravity="center_vertical"
android:layout_gravity="center">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
<ImageButton
android:id="@+id/boton7"
android:layout_width="@dimen/botones_sonidos"
android:layout_height="@dimen/botones_sonidos"
android:layout_weight="1"
android:layout_marginBottom="2dp"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
/>
<TextView
android:id="@+id/tituloSonido7"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Pajaro"
android:singleLine="false"
android:lines="2"
android:layout_below="@id/boton4"
android:gravity="center"
android:textColor="@color/white"
fontPath="fonts/helveticalight.ttf"
tools:ignore="MissingPrefix"/>
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
<ImageButton
android:id="@+id/boton8"
android:layout_width="@dimen/botones_sonidos"
android:layout_height="@dimen/botones_sonidos"
android:layout_weight="1"
android:layout_marginBottom="2dp"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
/>
<TextView
android:id="@+id/tituloSonido8"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Pajaro"
android:gravity="center"
android:textColor="@color/white"
fontPath="fonts/helveticalight.ttf"
tools:ignore="MissingPrefix"/>
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
<ImageButton
android:id="@+id/boton9"
android:layout_width="@dimen/botones_sonidos"
android:layout_height="@dimen/botones_sonidos"
android:layout_weight="1"
android:layout_marginBottom="2dp"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
/>
<TextView
android:id="@+id/tituloSonido9"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Pajaro"
android:gravity="center"
android:textColor="@color/white"
fontPath="fonts/helveticalight.ttf"
tools:ignore="MissingPrefix"/>
</LinearLayout>
</LinearLayout>
</LinearLayout>
</ScrollView>
</LinearLayout>
答案 5 :(得分:0)
只需固定TextView
的高度:
<TextView
android:id="@+id/tituloSonido3"
android:layout_width="wrap_content"
android:layout_height="48dp"
...
/>
如果您只想要一行,则可以对其进行椭圆化并设置较小的尺寸。 如果你想要多个,你可以使用增加的高度。