热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

应用程序暂停后,ScrollableTextView不允许选择文本

如何解决《应用程序暂停后,ScrollableTextView不允许选择文本》经验,应该怎么办?

我有一个可滚动TextView的用户可以选择文本.我通过设置移动方法来添加滚动条ScrollingMovementMethod.

问题:除非应用程序暂停(例如,切换应用程序后),否则选择效果很好.一旦应用程序处于活动状态,选择将停止工作,并在日志中收到以下消息:

W/TextView:TextView不支持文本选择.选择取消.

我的设置:

我有一个Activity CoordinatorLayout和一个TextView包含在RelativeLayout其中的片段,如下所示:


在Java代码中,我必须这样做:

textView.setMovementMethod(new ScrollingMovementMethod());
textView.setTextIsSelectable(true);
textView.setFocusable(true);
textView.setFocusableInTouchMode(true);

因为根据这个,这是唯一的工作方式,这和这个问题.

编辑:

问题出在以下调用中

textView.setMovementMethod(new ScrollingMovementMethod());

如果我删除它有效,但我无法理解.

重现问题的最小步骤:

1)TextView使用以下布局创建一个空的Activity .



    

2)设置TextViewin onStart()方法的可见性参数.

public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    @Override
    protected void onStart() {
        super.onStart();
        TextView textView = findViewById(R.id.text_view);
        textView.setMovementMethod(new ScrollingMovementMethod());
        textView.setTextIsSelectable(true);
        textView.setFocusable(true);
        textView.setFocusableInTouchMode(true);
    }
}

3)尝试TextView在暂停应用程序之前和之后使用上下文菜单.

编辑2:

删除setMovementMethod(new ScrollingMovementMethod())解决了我的问题,之后功能很好.但是我不太清楚为什么它被添加了,我担心如果我删除它会制造一些东西.知道为什么人们可能会ScrollingMovementMethod结合使用android:scrollbars="vertical".可能是xml在某些情况下不起作用?想法?我仍然对使用ScrollingMovementMethod制动器选择功能感兴趣吗?


推荐阅读
author-avatar
壞小籽z_339
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有