Java 在Android中禁用文本包装

Java 在Android中禁用文本包装,java,android,textview,android-edittext,word-wrap,Java,Android,Textview,Android Edittext,Word Wrap,我在安卓上做一个项目,我有一个文本视图(确切地说是编辑文本)和一个设置来启用或禁用该视图的文本包装。我在互联网上搜索过(很多),但仍然没有找到任何令人满意的解决方案 目前,我正在使用NestedScrollView进行垂直滚动,然后动态插入两个部分布局中的一个,第一个仅包含EditText,第二个将EditText包装在HorizontalScrollView中。问题是,当前每次从另一个活动返回时,我都必须重新启动该活动,以确保不会意外地将两个子项添加到NestedScrollView(导致异常

我在安卓上做一个项目,我有一个
文本视图
(确切地说是
编辑文本
)和一个设置来启用或禁用该视图的文本包装。我在互联网上搜索过(很多),但仍然没有找到任何令人满意的解决方案

目前,我正在使用
NestedScrollView
进行垂直滚动,然后动态插入两个部分布局中的一个,第一个仅包含
EditText
,第二个将
EditText
包装在
HorizontalScrollView
中。问题是,当前每次从另一个活动返回时,我都必须重新启动该活动,以确保不会意外地将两个子项添加到
NestedScrollView
(导致异常)。此外,解释这一点的代码似乎有点笨重和混乱

第一部分布局:


第二条:


EditorView
只是扩展了
EditText
,而不会影响布局)

我还发现,
EditText
有一个
setHorizontallyScrolling(true)
方法,但使用该方法,当用户刷卡时,我不会得到滑动效果,我认为这对用户不太友好


说到这里,我的问题是:在安卓系统中,有没有一种方法可以在
水平滚动视图中动态启用文本包装,或者在(自定义)
EditText
中有一个选项可以在本地对其进行切换?

我终于找到了一个不错的解决方案!基本上,在我的自定义
视图中
每当发生配置更改并启用换行时,我都会将宽度设置为屏幕宽度(我也会在
视图
首次初始化时进行设置):

@覆盖
受保护的void onconfiguration已更改(配置newConfig){
super.onConfigurationChanged(newConfig);
如果(/*换行已启用*/)
setWidth(Resources.getSystem().getDisplayMetrics().widthPixels);
else setWidth(ViewGroup.LayoutParams.MATCH_PARENT);
}
这仅仅是因为在我的例子中,
EditText
填充整个屏幕,所以将宽度设置为所需的值非常容易。在我尝试使用
MATCH\u PARENT
WRAP\u CONTENT
之前,但是在一个
水平滚动视图
中,并没有像我所希望的那样启用文本包装

请注意,此
视图
包含在
滚动视图
中的
水平滚动视图
中,因此默认情况下,它将水平和垂直滚动


希望这能帮助任何遇到这个问题的人

您如何控制
EditText
小部件的宽度?这就决定了文本的换行方式。理想情况下,你的问题将包含一个显示你目前正在做什么的列表。