作者:knight | 来源:互联网 | 2023-05-23 14:19
问题:遥控按键选中的选项有跑马灯效果,但是鼠标事件来说,没有跑马灯效果解题过程:重写一个类继承textview,永远获取焦点,不行。即使我再OnhoverListener里面实现onHover并且对t
问题:遥控按键选中的选项有跑马灯效果,但是鼠标事件来说,没有跑马灯效果
解题过程:重写一个类继承textview,永远获取焦点,不行。即使我再OnhoverListener里面实现onHover并且对textview获取了焦点,但是仍旧不行
解决方法:最后重写一个类继承textview,永远获取焦点,并且对textview调用了setSelected(true)之后就可以了。
public class MarqueeTextView extends TextView {
public MarqueeTextView(Context con) {
super(con);
}
public MarqueeTextView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public MarqueeTextView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
@Override
public boolean isFocused() {
return true;
}
@Override
protected void onFocusChanged(boolean focused, int direction,
Rect previouslyFocusedRect) {
}
}
android:id="@+id/ListNameTextView"
android:layout_
android:layout_
android:ellipsize="marquee"
android:gravity="left"
android:layout_marginLeft="2dip"
android:marqueeRepeatLimit="marquee_forever"
android:singleLine="true"
android:textColor="@android:color/white"
android:textSize="15sp" >
holder.settingOptionTextView.setSelected(true);
另外总结下AN TV下的鼠标,遥控按键事件:
首先对于selector而言,在TV下面只有遥控按键能够触发全部的事件:focus,selected,press
android:drawable="@android:color/transparent" />
android:drawable="@drawable/list_foucs" />
android:drawable="@drawable/list_foucs" />
android:drawable="@drawable/list_foucs" />
鼠标能触发的只要点击的时候的press事件。
至于在鼠标操控下要怎么模仿按键事件选择某个item之后,背景图像变化的话 ,只能间接通过设置item的背景图像来实现了
//refresh the focus state of listview item
public void refreshItemFocusState(int index) {
// TODO Auto-generated method stub
Log.d(TAG, "refreshItemFocusState index = "+index) ;
currentSelectedItemView = listView.getChildAt(index);
if(isEnterListviewLocation){
if(oldSelectedItemView != null)
oldSelectedItemView.setBackgroundResource(R.drawable.button_normal) ;
if(currentSelectedItemView != null)
currentSelectedItemView.setBackgroundResource(R.drawable.list_foucs);
oldSelectedItemView = currentSelectedItemView ;
}
}