【问题标题】:Why is TextView wrapping when gravity is set to left?为什么当重力设置为左时TextView会换行?
【发布时间】:2014-04-12 04:09:41
【问题描述】:

我遇到了一个问题,当重力设置为左时,我的 textview 会换行。我希望它只显示单词而不进行任何换行。

我想要的视觉效果:

Currency     Balance     Held     Value

但这就是我得到的:

C            Balance     Held     Value
u
r
...

这是我的 XML:

<TableRow
    android:layout_width="match_parent"
    android:layout_height="wrap_content" >

    <TextView
        android:id="@+id/textview1"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:gravity="left"
        android:text="Currency" />

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

    <TextView
        android:id="@+id/textview3"
        android:layout_width="0dp"
        android:layout_weight="1"
        android:gravity="center"
        android:text="Held"/>

    <TextView
        android:id="@+id/textview4"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:gravity="right"
        android:text="Value" />
</TableRow>

有什么想法吗?

【问题讨论】:

  • 我试过它显示正确。您可以为每个TextView 使用android:singleLine="true" 并尝试一下。
  • @Hariharan 试过了,textview1 完全消失了。我不知道为什么。
  • 它显示正确。你能发布你所有的代码吗?
  • 对每个textview 使用LinearLayoutandroid:layout_weight
  • @Hariharan 不幸的是,整个 XML 文件将近 2500 行。不要以为你们想经历这一切!

标签: android textview android-wrap-content android-gravity


【解决方案1】:

试试下面的代码。它非常适合我。

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content" >



<TextView
    android:id="@+id/textview1"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:gravity="left"
    android:text="Currency" />

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

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

<TextView
    android:id="@+id/textview4"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:gravity="right"
    android:text="Value" />

</LinearLayout>

输出: 希望对您有所帮助。

【讨论】:

    【解决方案2】:

    试试这个方法希望对你有帮助

    只需将此属性 android:weightSum="4" 添加到您的 TableRow 布局中,此属性值取决于您拥有的孩子的数量。

    【讨论】:

    • 试过了,没有任何改变。不过感谢您的帮助!
    【解决方案3】:

    我已经在下面的代码中测试了与你想要的相同的输出,请试试这个-

    <TableRow  xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >
    
        <TextView
            android:id="@+id/textview1"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:gravity="left"
            android:text="Currency" />
    
        <TextView
            android:id="@+id/textview2"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:gravity="center"
            android:text="Balance" />
    
        <TextView
            android:id="@+id/textview3"
            android:layout_width="0dp"
            android:layout_weight="1"
            android:gravity="center"
            android:text="Held"/>
    
        <TextView
            android:id="@+id/textview4"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:gravity="right"
            android:text="Value" />
    </TableRow>
    

    【讨论】:

    • 是的,它以居中显示,但我想要左边的文字
    • @Seslyn 查看更新后的答案。只需复制并粘贴即可查看输出。
    猜你喜欢
    • 2019-11-19
    • 1970-01-01
    • 2016-11-07
    • 1970-01-01
    • 1970-01-01
    • 2011-10-03
    • 1970-01-01
    • 1970-01-01
    • 2016-03-09
    相关资源
    最近更新 更多