使用线性/重量将视图置于其占据的空间中心

时间:2016-07-14 04:58:31

标签: android android-layout

我有一个线性布局(水平),里面有5个文本视图。我的目标是在屏幕左侧放置两个文本视图,在中间放置大空格,然后在右侧放置剩余的文本视图。

像这样。

[text] [text] [blank] [text] [text]

就这样结束了。

[text] [text] [blank] [text] [text]

我几乎可以让它与体重一起工作。问题是文本视图在它占据的空间内显示为左对齐,我试图让显示的文本在它占据的空间内居中。

这可能吗?

4 个答案:

答案 0 :(得分:0)

你可以尝试一下

<LinearLayout
        android:layout_width="wrap_content"
        android:orientation="horizontal"
        android:layout_height="wrap_content">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="TextView1"/>
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="TextView2"/>
        <View
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:background="#f00"></View>
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="TextView3"/>
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="TextView4"/>
    </LinearLayout>

enter image description here

答案 1 :(得分:0)

机器人:textAlignment =&#34;中心&#34;做了这个工作。

同样感谢上面的例子。好东西!

答案 2 :(得分:0)

尝试如下:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:weightSum="5">

<TextView
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:text="text1"
    android:gravity="center_horizontal"
    android:layout_weight="1"/>

<TextView
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:gravity="center_horizontal"
    android:text="text2"
    android:layout_weight="1"/>

<Space
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:text="text1"
    android:layout_weight="1"/>

<TextView
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:text="text3"
    android:gravity="center_horizontal"
    android:layout_weight="0.66"/>

<TextView
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:gravity="center_horizontal"
    android:text="text4"
    android:layout_weight="0.66"/>

<TextView
    android:layout_width="0dp"
    android:gravity="center_horizontal"
    android:layout_height="wrap_content"
    android:text="text5"
    android:layout_weight="0.66"/>


</LinearLayout> 

写android:singleLine =&#34; true&#34;如果你想让你的textview成为一个班轮。

答案 3 :(得分:0)

您可以使用RelativeLayout

轻松完成此操作
  

[text1] [text2] [blank] [text3] [text4]

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TextView
        android:id="@+id/tv1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="text1" />

    <TextView
        android:id="@+id/tv2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_toRightOf="@+id/tv1"
        android:text="text2" />

    <TextView
        android:id="@+id/tv3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_toLeftOf="@id/tv4"
        android:text="text3" />

    <TextView
        android:id="@+id/tv4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:text="text4" />
</RelativeLayout>