我正在一个Android设备上使用硬件键盘的项目中工作,因此可以集中注意力的事情是不可或缺的一部分。
现在我的一个可点击的TextView
Selector
对state_focused
没有反应,只对state_selected
和state_pressed
做出反应。
这是TextView的xml:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:focusable="true"
android:padding="@dimen/text_padding"
android:onClick="@{viewModel::onShelfClicked}">
<ImageView
style="@style/Details_Head_ImageView"
app:srcCompat="@drawable/ic_regalplatz_clean" />
<TextView
style="@style/Clickable_Text"
tools:text="155-07-00-6, 1145-07-00-3" />
</LinearLayout>
文字样式:
<style name="Clickable_Text">
<item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:textSize">16sp</item>
<item name="android:fontFamily">sans-serif</item>
<item name="android:textStyle">bold</item>
<item name="android:textColor">@drawable/selector_clickable_text</item>
<item name="android:lines">1</item>
<item name="android:ellipsize">end</item>
</style>
当然,我的选择器:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="@color/accent_color_dark_selected" android:state_pressed="true" />
<item android:color="@color/accent_color_dark_selected" android:state_selected="true" />
<item android:color="@color/accent_color_dark_selected" android:state_focused="true" />
<item android:color="@color/accent_color_dark" />
</selector>
我已经尝试让TextView
本身可以集中,可点击,将选择器从样式中取出并直接放在View
上,但一切都无济于事。无论我尝试什么,只有在按下(使用触摸屏或硬件键盘)而不是使用硬件键盘导航时,颜色才会改变。
我的targetSdkVersion
为26,minSdkVersion
为21。
答案 0 :(得分:0)
在您的活动中添加这段代码
TextView txtView;
txtView= findVieById(R.id.idOfYourTextView)
//选择txtView后。
txtView.setSelected(true);
imageView.setSelected(false);
希望这有效