【问题标题】:problem in placing three text view horizontally in android在android中水平放置三个文本视图的问题
【发布时间】:2011-05-09 17:29:36
【问题描述】:

在我的应用程序中,我在线性布局中水平放置了三个文本视图。布局角落的两个文本视图,它们是固定的,不会改变。我在布局上有 On Click 侦听器以移动到下一个活动。在第二个活动中,我在编辑框中输入的任何内容都将放置在中间文本视图中。

现在的问题是第一个文本视图在角落,但是如果中间文本视图的长度很短,第三个文本视图就会改变,或者如果中间文本视图太大,第三个文本视图就会受到干扰。

我希望第一个和第三个位于角落,而中间的则根据其文本大小自动调整。如何做到这一点请帮助我...

以下是我的布局

 <LinearLayout android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content" android:id="@+id/inputLayout1">
                          <TextView android:textSize="22sp" android:text="Input Type" android:id="@+id/inputtext1" android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView>
                          <TextView  android:textSize="22sp" android:text="GPS" android:id="@+id/inputtext2" android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView>
                          <TextView  android:textSize="22sp" android:text="A" android:id="@+id/inputtext3" android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView>
                      </LinearLayout>

【问题讨论】:

  • 您可能需要将 android:weightSum = 4 添加到 Linearlayout,然后为 1 和 3 制作 android:layout_weight = 1 和 android:layout_weight = 2 为第二个

标签: android user-interface textview


【解决方案1】:

前两个建议存在问题,我认为它们没有解决提问者想要做的事情。

我认为以下是我们所寻求的。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content">
    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:background="@android:color/white"
        android:padding="5dip">
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:lines="1"
            android:background="@android:color/darker_gray"
            android:textColor="@android:color/black"
            android:text="left text" />
        <TextView
            android:layout_width="0dip"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:lines="1"
            android:gravity="center_horizontal"
            android:background="@android:color/black"
            android:textColor="@android:color/white"
            android:text="very long middle text, very long middle text" />
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:lines="1"
            android:gravity="right"
            android:background="@android:color/darker_gray"
            android:textColor="@android:color/black"
            android:text="right text" />
    </LinearLayout>
    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:background="#FF777777"
        android:padding="5dip">
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:lines="1"
            android:background="@android:color/darker_gray"
            android:textColor="@android:color/black"
            android:text="left text" />
        <TextView
            android:layout_width="0dip"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:lines="1"
            android:gravity="center_horizontal"
            android:background="@android:color/black"
            android:textColor="@android:color/white"
            android:text="short middle text" />
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:lines="1"
            android:gravity="right"
            android:background="@android:color/darker_gray"
            android:textColor="@android:color/black"
            android:text="right text" />
    </LinearLayout>
    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:background="@android:color/white"
        android:padding="5dip">
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:lines="1"
            android:background="@android:color/darker_gray"
            android:textColor="@android:color/black"
            android:text="left text" />
        <TextView
            android:layout_width="0dip"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:lines="1"
            android:gravity="center_horizontal"
            android:background="@android:color/black"
            android:textColor="@android:color/white"
            android:text="short middle text" />
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:lines="1"
            android:gravity="right"
            android:background="@android:color/darker_gray"
            android:textColor="@android:color/black"
            android:text="longer right text" />
    </LinearLayout>
</LinearLayout>

【讨论】:

    【解决方案2】:
     <LinearLayout android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content" android:id="@+id/inputLayout1">
                              <TextView android:textSize="22sp" android:text="Input Type" android:id="@+id/inputtext1" android:layout_width="0dp" android:layout_weight="1" android:layout_height="wrap_content"></TextView>
                              <TextView  android:textSize="22sp" android:text="GPS" android:id="@+id/inputtext2" android:layout_width="0dp"  android:layout_weight="1" android:layout_height="wrap_content"></TextView>
                              <TextView  android:textSize="22sp" android:text="A" android:id="@+id/inputtext3"  android:layout_weight="1" android:layout_width="0dp" android:layout_height="wrap_content"></TextView>
                          </LinearLayout>
    

    相应地调整权重以调整文本视图的大小。

    【讨论】:

    • 请注意,要使中间文本变为椭圆而不是截断,请将 lines="1" 属性更改为 singleLine="true",然后您还可以选择使用 ellipsize 属性更改它的省略方式.
    猜你喜欢
    • 2017-08-30
    • 1970-01-01
    • 2017-09-22
    • 1970-01-01
    • 1970-01-01
    • 2020-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多