📜  android textview 不换行 (1)

📅  最后修改于: 2023-12-03 14:59:15.781000             🧑  作者: Mango

Android TextView 不换行

在 Android 应用中,TextView 经常用来展示多行文字。默认情况下,TextView 会在到达一行末尾时自动换行。但是,在某些情况下,我们需要让 TextView 不自动换行,否则可能会导致布局混乱。

本文将介绍三种实现方式,让 TextView 不换行。

1. 使用代码

我们可以在代码中设置单个 TextView 不自动换行:

TextView textView = findViewById(R.id.text_view);
textView.setSingleLine(false); // 不限制行数
textView.setEllipsize(null); // 不省略末尾文字

其中,setSingleLine(false) 取消单行限制,setEllipsize(null) 取消省略末尾文字。

如果需要给所有 TextView 设置不自动换行的属性,我们可以在 App 的主题中进行设置:

<resources>

    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <!-- 取消所有 TextView 的自动换行 -->
        <item name="android:singleLine">false</item>
        <item name="android:ellipsize">none</item>
    </style>

</resources>

在主题中,我们设置 singleLinefalseellipsizenone,即可让所有 TextView 不自动换行。

2. 使用 XML 属性

我们可以在 XML 布局文件中设置 TextView 不自动换行:

<TextView
    android:id="@+id/text_view"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:singleLine="false"
    android:ellipsize="none"
    android:text="This is a very long text that should not be broken into multiple lines." />

在 TextView 标签中,我们设置 singleLinefalseellipsizenone,即可让该 TextView 不自动换行。

3. 使用 View Binding

如果我们使用 View Binding 来操作视图,我们可以在代码中设置单个 TextView 不自动换行:

ActivityMainBinding binding = ActivityMainBinding.inflate(getLayoutInflater());
TextView textView = binding.textView;
textView.setSingleLine(false); // 不限制行数
textView.setEllipsize(null); // 不省略末尾文字

使用 View Binding 和 findViewById 操作视图的方式略有不同。

如果需要使用主题或 XML 属性方式,与上面所述的方式相同。

总之,不管采用哪种方式,我们都能轻松地实现 TextView 不自动换行的效果。