【问题标题】:Java wear os Scroll WearableRecyclerView by digital crownJava wear os Scroll WearableRecyclerView by 数码冠
【发布时间】:2020-01-22 08:53:58
【问题描述】:

当我使用数字表冠时,我的列表不滚动

这就是我的工作;

<androidx.wear.widget.WearableRecyclerView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/wrv_container"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:scrollbars="vertical"
    />


public class MainActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.wrv_demo);
        WearableRecyclerView wrv = findViewById(R.id.wrv_container);
        wrv.setLayoutManager(new WearableLinearLayoutManager(this));
        wrv.setAdapter(new DemoAdapter());
        wrv.setHasFixedSize(true);
        wrv.setCircularScrollingGestureEnabled(true);
        wrv.setEdgeItemsCenteringEnabled(true);
        wrv.setOnGenericMotionListener(new View.OnGenericMotionListener() {
            @Override
            public boolean onGenericMotion(View view, MotionEvent motionEvent) {
                return false;
            }
        });

        wrv.setBezelFraction(0.5f);
        wrv.setScrollDegreesPerScreen(90);
    }


    private static class ViewHolder extends RecyclerView.ViewHolder {
        TextView mView;
        ViewHolder(TextView itemView) {
            super(itemView);
            mView = itemView;
        }
    }
    private static class DemoAdapter extends WearableRecyclerView.Adapter<ViewHolder> {
        private static final int ITEM_COUNT = 100;
        @Override
        public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
            TextView view = new TextView(parent.getContext());
            return new ViewHolder(view);
        }
        @Override
        public void onBindViewHolder(ViewHolder holder, int position) {
            holder.mView.setText("Holder at position " + position);
            holder.mView.setTag(position);
        }
        @Override
        public int getItemCount() {
            return ITEM_COUNT;
        }
    }
}

【问题讨论】:

    标签: wear-os


    【解决方案1】:

    简短回答: wrv.requestFocus();

    长答案: 此页面概述了如何捕获旋转输入。 https://developer.android.com/training/wearables/ui/rotary-input

    我发现我的 WearOS 应用程序的 recyclerview 在模拟器中自动运行,而没有在该页面上显示任何内容;但是,它在我的手表上不起作用。我在那个页面上实现了每一步,然后手表就开始工作了。然后我删除了该页面上的所有内容。对我来说,唯一需要的就是 recyclerView.requestFocus() 行。

    【讨论】:

    • 添加 wearRcViewRecFavList.requestFocus() 工作,我现在可以使用旋转输入滚动列表
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多