textView 上的选择器需要两次单击才能执行操作
Selector on textView requierd two click to do action
我的 textView 上有选择器行。
selector.xml :
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!--<item android:drawable="@drawable/select_white" android:state_activated="true"/>-->
<item android:drawable="@drawable/select_white" android:state_pressed="true"/>
<item android:drawable="@drawable/select_white" android:state_selected="true"/>
<item android:drawable="@drawable/select_white" android:state_focused="true"/>
<item android:drawable="@drawable/select_none"/>
</selector>
我将 textView 设置为背景:
<TextView
android:id="@+id/displayPlace"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:focusable="true"
android:focusableInTouchMode="true"
android:clickable="true"
android:text="@string/place"
android:textColor="@color/white"
android:background="@drawable/selector"
android:textSize="@dimen/text_main"/>
当我点击文本视图选择器时看起来很好,但我必须对我的点击进行操作,所以要执行我的操作需要点击两次,我试图删除 android:focusableInTouchMode="true"
行但它使选择器可见一秒钟就消失了。
如何在第一次点击选择器时执行操作?
我的点击次数:
place.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
fragment = new PlaceFragment();
replaceFragment(fragment);
Fragment fragment2 = getFragmentManager().findFragmentByTag(TAG_FRAGMENT);
if (fragment2 != null)
getFragmentManager().beginTransaction().remove(fragment2).commit();
}
});
双击有两种方式
1) 在 OnClickListener 中使用计时器 https://gist.github.com/srix55/ec64d2f6a371c80bbbc4
2) 使用 GestureDetector onDoubleTap 侦听器 and
只需尝试使用 setOnFocusChangeListener
而不是 setOnClickListener
。
我的 textView 上有选择器行。
selector.xml :
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!--<item android:drawable="@drawable/select_white" android:state_activated="true"/>-->
<item android:drawable="@drawable/select_white" android:state_pressed="true"/>
<item android:drawable="@drawable/select_white" android:state_selected="true"/>
<item android:drawable="@drawable/select_white" android:state_focused="true"/>
<item android:drawable="@drawable/select_none"/>
</selector>
我将 textView 设置为背景:
<TextView
android:id="@+id/displayPlace"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:focusable="true"
android:focusableInTouchMode="true"
android:clickable="true"
android:text="@string/place"
android:textColor="@color/white"
android:background="@drawable/selector"
android:textSize="@dimen/text_main"/>
当我点击文本视图选择器时看起来很好,但我必须对我的点击进行操作,所以要执行我的操作需要点击两次,我试图删除 android:focusableInTouchMode="true"
行但它使选择器可见一秒钟就消失了。
如何在第一次点击选择器时执行操作?
我的点击次数:
place.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
fragment = new PlaceFragment();
replaceFragment(fragment);
Fragment fragment2 = getFragmentManager().findFragmentByTag(TAG_FRAGMENT);
if (fragment2 != null)
getFragmentManager().beginTransaction().remove(fragment2).commit();
}
});
双击有两种方式
1) 在 OnClickListener 中使用计时器 https://gist.github.com/srix55/ec64d2f6a371c80bbbc4
2) 使用 GestureDetector onDoubleTap 侦听器 and
只需尝试使用 setOnFocusChangeListener
而不是 setOnClickListener
。