TextView选择器不适用于state_focused

时间:2018-02-08 10:29:53

标签: android android-layout textview

我正在一个Android设备上使用硬件键盘的项目中工作,因此可以集中注意力的事情是不可或缺的一部分。 现在我的一个可点击的TextView Selectorstate_focused没有反应,只对state_selectedstate_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。

1 个答案:

答案 0 :(得分:0)

在您的活动中添加这段代码

  TextView txtView; 
     txtView= findVieById(R.id.idOfYourTextView)

//选择txtView后。

 txtView.setSelected(true);
    imageView.setSelected(false);

希望这有效