首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用onScrollListener的onKeyListener

使用onScrollListener的onKeyListener
EN

Stack Overflow用户
提问于 2017-11-30 09:36:30
回答 0查看 93关注 0票数 0

我真的不确定我是理解了这一点,还是做错了。我有一个网格布局(单元格是文本视图)包裹在一个水平滚动,这是在一个垂直滚动。我正在使用Dpad在网格中导航。这很有效,当我按下右箭头垫时,网格单元格会像预期的那样从左向右移动,当按下左箭头垫时,网格单元格从右向左移动。我已经添加了一个onKeylistener附加到网格的每个textView,当我在网格上滚动时,我正在改变背景的颜色。问题是onKeyListener显然接管了对网格的控制。向右滚动可用于更改颜色,但单元格不再在网格上移动。一旦我到达最后一个可见列,焦点将继续离开屏幕,但单元格将离开屏幕。有没有办法在onkey事件中实现滚动,这样单元格就会移动,我就可以控制单元格的属性了?或者有一种完全不同的方式来实现这一点?

主要组件包括

代码语言:javascript
复制
textViewD.setOnKeyListener(new View.OnKeyListener() {
                    @Override
                    public boolean onKey(View view, int i, KeyEvent keyEvent) {

                       if(keyEvent.getAction()==KeyEvent.ACTION_DOWN && i == KeyEvent.KEYCODE_DPAD_RIGHT) {

                           gridLayoutE.getChildAt(childIndex[0]).setBackgroundColor(Color.BLACK);
                           gridLayoutE.getChildAt(childIndex[0] + 1).setBackgroundColor(Color.GREEN);
                           childIndex[0] = childIndex[0] + 1;
                           gridLayoutE.requestFocus();


                           return true;
     }
     return false;
     }

scrolllistener,我有一个扩展horizontalscroll的类,目的是让我的头表和网格一起滚动。这是可行的。

代码语言:javascript
复制
 @Override
public void onScrollChanged (ObservableScrollView scrollView,int x, int y, int oldx, int oldy){
    if (scrollView == hsvHeader) {
        hsvBody.scrollTo(x, y);
    } else if (scrollView == hsvBody) {

        hsvHeader.scrollTo(x, y);
    }
}
EN

回答

页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47564544

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档