我有一个 ViewFlipper,我希望在显示的子项发生更改时触发监听器。我已经为 ViewFlipper 设置了一个 OnFocusChangeListener,但当我从子 0 翻转到子 1 时,它永远不会触发,反之亦然。 ViewFlipper 包含两个relativelayout,我尝试为它们设置 OnFocusChangeListeners,但当我尝试设置它时,我得到了 ClassCastException。这是我的代码:
RelativeLayout songsLayout = (RelativeLayout) findViewById(R.id.song_page_layout);
songsLayout.setOnFocusChangeListener(new OnFocusChangeListener() {
public void onFocusChange(View view, boolean hasFocus) {
showPopUp("View " + view.getId() + " now has focus: " + hasFocus);
}
} );
R.is.song_page_layout是我的RelativeLayouts之一,showPopUp()是我用来显示弹出窗口的函数。
是否有人有某种触发器的工作代码,当 ViewFlipper 更改显示的子项时会触发该触发器?
最佳答案
我认为你不明白 Android 上的“焦点”是什么意思;当用户选择该 View 时,例如,当他们通过按下来选择 EditText,或者使用键盘选择按钮时。当 ViewFlipper 切换 View 时,它不会获得或失去焦点。
据我所知,您可以:
不要使用ViewFlipper的自动翻转,而是在需要翻转时手动调用showNext()(然后在代码中自行设置间隔)。
子类化或重新实现 ViewFlipper 并根据您的喜好添加更改监听器。
关于android:如何设置当我的 ViewFlipper 显示新子项时触发的监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2672231/