这是我得到的错误:W/TextView: TextView does not support text selection. Selection cancelled.
我很惊讶,因为我之前在Textviews
中实施的其他RelativeLayout
在我拥有属性android:textIsSelectable="true"
时可以选择文字 - 但是,这次没有工作。
此代码位于app_bar_main.xml
下,使用XML中的include
关键字。
以下是app_bar_main.xml
:
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout 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"
android:fitsSystemWindows="true"
tools:context=".MainActivity">
<android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/AppTheme.AppBarOverlay">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
>
</android.support.v7.widget.Toolbar>
</android.support.design.widget.AppBarLayout>
<include layout="@layout/content_main" /> //This is where the textview is added!
</android.support.design.widget.CoordinatorLayout>
以下是经过编辑的content_main.xml
:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#ffffff"
android:orientation="vertical"
tools:context="com.androidterminal.MainActivity"
tools:showIn="@layout/app_bar_main">
//I have some other LinearLayouts here
<RelativeLayout
android:id="@+id/ll5"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/ll2"
android:orientation="horizontal">
<TextView
android:id="@+id/main1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/colorGrey"
android:textIsSelectable="true"
android:textColor="#000000" />
</RelativeLayout>
</RelativeLayout>
此TextView main1
不可选,并在LogCat上抛出上述警告。请帮忙。谢谢。 (我已经尝试设置focusable和setFocusable属性)
答案 0 :(得分:4)
您的代码运行正常,我不确定您的系统配置是什么。
尝试以下修复
在java中试试。
textview.setTextIsSelectable(true);
textview.setFocusable(true);
textview.setFocusableInTouchMode(true);
将TextView
宽度从wrap_content
更改为match_parent
。
答案 1 :(得分:2)
使用以下CopyTextView.java可以解决您的问题:
public class CopyTextView extends EditText {
private boolean mEnabled; // is this edittext enabled
public CopyTextView(Context context) {
super(context);
}
public CopyTextView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public CopyTextView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
@Override
protected void onAttachedToWindow() {
super.onAttachedToWindow();
try {
if (!mEnabled) return;
super.setEnabled(false);
super.setEnabled(mEnabled);
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
public void setEnabled(boolean enabled) {
this.mEnabled = enabled;
super.setEnabled(enabled);
}}
然后在布局文件中使用它
<com.your_package_name.CopyTextView
android:id="@+id/main1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/colorGrey"
android:textIsSelectable="true"
android:textColor="#000000" />
答案 2 :(得分:1)
答案 3 :(得分:-1)
从逻辑上思考,可以通过长按来选择文本....所以textview必须是longclickable
<TextView
android:id="@+id/main1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/colorGrey"
android:textIsSelectable="true"
android:focusable="true"
android:longClickable="true"
android:textColor="#000000" />