如何启用滚动关于谷歌玻璃的固件X16一simpleadapter固件、玻璃、simpleadapter

2023-09-06 00:39:59 作者:瘦子先生。

更新我的谷歌玻璃最大XE16我的列表视图,这是我用simpleadapter建成后,不能再滚动。有没有一种方法来手动启用与GDK滚动仍然还是解决这个问题?

After updating my Google Glass up to XE16 my listview, which I have built by using a simpleadapter, is not able to scroll anymore. Is there a way to manually enable scrolling nonetheless with the GDK or fix this issue?

推荐答案

我的列表视图停止滚动,同时还与X16更新。您可以通过以下操作共建滚动回:

My listview stopped scrolling as well with the X16 update. You can build scrolling back in by doing the following:

在您的活动的的onCreate 的方法,一定要:

In your activity's onCreate method, be sure to:

设置列表的选择模式 设置列表的点击属性为true。 设置列表中的 onItemClick 监听器 创建一个手势检测器(见下文) set the list's choice mode set the list's clickable property to true. set the list's onItemClick listener create a gesture detector (see below)

例如:

myListView = (ListView)findViewById(R.id.MY_LIST_VIEW);
if(myListView != null){
    myListView.setAdapter(mAdapter);
    myListView.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
    myListView.setClickable(true);

    myListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
         public void onItemClick(AdapterView<?> parent, View view, int position, long id){
            Log.d("MY_LOG", "click at position " + position);
         }
    });
}

mGestureDetector = createGestureDetector(this);

现在,我们需要写的 createGestureDetector()拨打以上(最后一行)的新方法。基本上,你可以修改GDK文档中给出​​的code到上下滚动的基础上 SWIPE_LEFT SWIPE_RIGHT 手势。需要注意的是,在上述code,我指定我的ListView一个叫做变量 myListView 。下面是手势检测的样本方法,将滚动的基础上轻扫手势:

Now, we need to write a new method for the createGestureDetector() call above (last line). Basically, you can modify the code given in the GDK docs to scroll up and down based on SWIPE_LEFT and SWIPE_RIGHT gestures. Note that in the above code, I assigned my listView to a variable called myListView. Here's a sample method for the gesture detector that will scroll based on the swipe gestures:

private GestureDetector createGestureDetector(Context context) {
    GestureDetector gestureDetector = new GestureDetector(context);
    //Create a base listener for generic gestures
    gestureDetector.setBaseListener( new GestureDetector.BaseListener() {
        @Override
        public boolean onGesture(Gesture gesture) {
            if (gesture == Gesture.TAP) { // On Tap, generate a new number
                return true;
            } else if (gesture == Gesture.TWO_TAP) {
                // do something on two finger tap
                return true;
            } else if (gesture == Gesture.SWIPE_RIGHT) {
                // do something on right (forward) swipe
                myListView.setSelection(myListView.getSelectedItemPosition()+1);
                return true;
            } else if (gesture == Gesture.SWIPE_LEFT) {
                // do something on left (backwards) swipe
                myListView.setSelection(myListView.getSelectedItemPosition()-1);
                return true;
            }
            return false;
        }
    });
    gestureDetector.setFingerListener(new GestureDetector.FingerListener() {
        @Override
        public void onFingerCountChanged(int previousCount, int currentCount) {
          // do something on finger count changes
        }
    });
    gestureDetector.setScrollListener(new GestureDetector.ScrollListener() {
        @Override
        public boolean onScroll(float displacement, float delta, float velocity) {
            // do something on scrolling

            return false;
        }
    });
    return gestureDetector;
}

希望这有助于!

Hope this helps!

 
精彩推荐
图片推荐