Как выделить TextView или LinearLayout при щелчке по нему?
У меня есть LinearLayout, который содержит три TextView. Я хочу выделить TextView или весь макет, когда пользователь нажимает на TextView. Это какой-то способ сделать это?
Спасибо.
Ответы
Ответ 1
Я полагаю, 2 Layout
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/white"
>
<LinearLayout
android:id="@+id/root"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="?android:attr/selectableItemBackground"
android:clickable="true"
>
...
</LinearLayout>
</LinearLayout>
findViewById(R.id.root).setOnClickListener(...);
Ответ 2
Я не мог заставить работать римские методы, но вместо этого нашел свой ответ здесь. Используйте ресурс XML в качестве фонового рисунка и вуаля! он работал как шарм.
Ответ 3
Существует несколько способов сделать это.
Самый простой способ сделать это - сыграть с различными View атрибутами, такими как android:focusable
, android:focusableInTouchMode
, android:clickable
и TextView, например android:selectAllOnFocus
.
Вы также можете настроить внешний вид своих представлений, установив их фоны на StateListDrawable (aka <selector>
drawables).