如何:禁用Line-Wrap;并启用水平滚动;在Android EditText控件中

时间:2017-07-01 09:51:55

标签: android android-layout

我已经尝试了一些我在SO和Google上找到的答案,但似乎没有人能够提供可行的解决方案。

我是一个老HTML家伙;所以对我来说解决方案很简单,找到css,实现代码。 Android就是这样......对于Android团队造成的混乱,确实没有好消息。也许"业余"对于这种性质的搞砸是正确的。

所有"我们"想要做的是,在多行文本编辑[= EditText]用户输入控件中启用水平滚动,并禁用自动段落/换行和分词(人们会认为是vanilla-behavior;但isn&# 39; t)的

我无法阅读我的" logcat"输出,因为Android认为"加密"我使用线压缩算法的数据是最好也是最有用的方式来查看"一个文字..

如果您可以提供没有提供此功能的特殊Java代码黑客的裸布局,我将接受您的解决方案作为"答案"以先到先得的方式。

1 个答案:

答案 0 :(得分:0)

通过调整其他答案,我想出了这个问题的答案。

我的回答使用主视图组的约束布局。

禁用换行符本质上与启用底层textview = editText的水平增长有关。我在手机和平​​板电脑上测试了这个解决方案。我的原始答案没有解决输入法编辑器兼容性的不可预见的问题; IME仍在强行换线的地方;此代码在原始答案中按预期运行,提供多行文本视图,没有换行和水平滚动。

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="hypersoft.systems.texteditor.MainActivity">

    <HorizontalScrollView
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:layout_marginLeft="2dp"
        android:layout_marginRight="2dp"
        android:layout_marginStart="2dp"
        android:layout_marginTop="2dp"
        android:fillViewport="true"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent">

        <EditText
            android:id="@+id/editText"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:background="@android:color/transparent"
            android:fadingEdge="none"
            android:gravity="top"
            android:inputType="textMultiLine"
            android:isScrollContainer="true"
            android:overScrollMode="ifContentScrolls"
            android:scrollHorizontally="true"
            android:scrollbarStyle="insideOverlay"
            android:scrollbars="vertical|horizontal"/>

    </HorizontalScrollView>


</android.support.constraint.ConstraintLayout>