在LinearLayout中垂直间隔TextView

时间:2014-08-14 10:17:44

标签: android textview android-linearlayout

我有一个LinearLayout,我想垂直添加3个TextViews。我能做到。

我的问题是:如何让我的LinearLayout中的TextViews在垂直方向上均匀分布,这恰好是800x600像素。

鉴于LinearLayout的高度为600像素,这意味着将3行文本放在y = 150,y = 300,y = 450(近似)的行上。

如何创建一个XML文件来实现垂直间距?

注意:我不想使用绝对坐标。

4 个答案:

答案 0 :(得分:2)

您可以通过在View之间和之间放置空TextView来设置它们的高度和重量,以使它们平均填充剩余空间。在你的高度为600的例子中,这将把它们放在150,300和450,而不是100,300和500,就像加权TextView那样。

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <View
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1" />

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

    <View
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1" />

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

    <View
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1" />

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

    <View
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1" />

</LinearLayout>

答案 1 :(得分:1)

您可以使用weight属性将TextView的比例调整为窗口大小。此外,您可以指定gravity属性以使TextView内的文本居中。

在此代码中,TextView各占屏幕的1/3:

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

    <TextView
        android:id="@+id/tv1"
        android:layout_weight="1"
        android:layout_margin="5dp"
        android:layout_width="wrap_content"
        android:layout_height="0dp"
        android:gravity="center"
        android:text="tv1"/>

    <TextView
        android:id="@+id/tv2"
        android:layout_weight="1"
        android:layout_margin="5dp"
        android:layout_width="wrap_content"
        android:layout_height="0dp"
        android:gravity="center"
        android:text="tv1"/>

    <TextView
        android:id="@+id/tv3"
        android:layout_weight="1"
        android:layout_margin="5dp"
        android:layout_width="wrap_content"
        android:layout_height="0dp"
        android:gravity="center"
        android:text="tv1"/>

</LinearLayout>

答案 2 :(得分:1)

下面是均匀管理文字视图的代码,只需复制粘贴

即可

当您在xml代码中使用重量和重力进行设计时,它将自动在所有屏幕上进行调整

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:background="#ffffff"
        android:text="1"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:textColor="#000000" />

    <TextView
        android:id="@+id/textView2"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:background="#ffffff"
        android:text="2"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:textColor="#000000" />

    <TextView
        android:id="@+id/textView3"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:background="#ffffff"
        android:text="3"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:textColor="#000000" />

</LinearLayout>

答案 3 :(得分:1)

您可以在layout_weight

的帮助下完成

示例

<TextView
    android:layout_width="wrap_content"
    android:layout_height="0dp"
    android:layout_weight="1"
    android:text="text1"
    android:textAppearance="?android:attr/textAppearanceLarge" />

<TextView
    android:layout_width="wrap_content"
    android:layout_height="0dp"
    android:layout_weight="1"
    android:text="text2"
    android:textAppearance="?android:attr/textAppearanceLarge" />

<TextView
    android:layout_width="wrap_content"
    android:layout_height="0dp"
    android:layout_weight="1"
    android:text="text3"
    android:textAppearance="?android:attr/textAppearanceLarge" />