dan*_*apd 4 android if-statement listener d-pad android-tv
在活动中,我的工具栏中有 TabLayout、ViewPager 和菜单按钮(汉堡包)。
使用键盘上的箭头,默认情况下我可以从选项卡移动到查看寻呼机项目,没有任何问题,但我无法将焦点放在工具栏菜单按钮上。
首先,当按下 KeyEvent.KEYCODE_DPAD_UP 时我无法收听,我想知道为什么。
我的代码:
viewPager = findViewById(R.id.viewpager);
viewPager.setAdapter(adapter);
tabLayout = findViewById(R.id.tabs);
tabLayout.setupWithViewPager(viewPager);
tabLayout.setOnKeyListener(new View.OnKeyListener() {
@Override
public boolean onKey(View view, int i, KeyEvent keyEvent) {
if ((keyEvent.getAction() == KeyEvent.ACTION_UP) && (i == KeyEvent.KEYCODE_DPAD_UP)) {
toolbar.setFocusable(true);
toolbar.setFocusableInTouchMode(true);
tabLayout.setNextFocusUpId(R.id.toolbar);
Log.d(TAG, "KEYCODE_DPAD_UP");
tabLayout.setTabMode(TabLayout.MODE_SCROLLABLE);
tabLayout.setDescendantFocusability(ViewGroup.FOCUS_BLOCK_DESCENDANTS);
}
return false;
}
});
Run Code Online (Sandbox Code Playgroud)
我的 if 语句有什么问题?
您是否尝试过重写活动onKeyDown方法并在那里调用您的代码:
public class YourActivity extends AppCompatActivity {
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_DPAD_UP) {
// Your code here
return true;
}
return super.onKeyDown(keyCode, event);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4642 次 |
| 最近记录: |