Как установить порог прокрутки до половины экрана? - PullRequest
0 голосов
/ 09 октября 2018

У меня есть список (recycleView) имен.Некоторые имена короткие, некоторые длинные.Я хочу удалить их при пролистывании, но хочу убедиться, что пользователь пролистывает более половины расстояния экрана (или ширины списка).

В настоящее время это происходит по длине отдельного элемента.

Я знаю, как сильно ударить при удалении.Я попытался переопределить getSwipeThreshold, но опять-таки он использует размер элемента в качестве своей базы.

Вот код, потому что SO хочет код:

     RecyclerView recyclerView = findViewById(R.id.edit_list);
     final MyRecyclerViewAdapter adapter = new 
     MyRecyclerViewAdapter(this, qnames);

    //set swipe behavior
    ItemTouchHelper.SimpleCallback itemTouchHelperCallback = new ItemTouchHelper.SimpleCallback(0, ItemTouchHelper.LEFT) {
        @Override
        public boolean onMove(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, RecyclerView.ViewHolder target) {
            return false;  //do not allow move
        }

        @Override
        public void onSwiped(RecyclerView.ViewHolder viewHolder, int direction) {
            // Row is swiped from recycler view
            int position = viewHolder.getAdapterPosition(); //get position which is swipe
            qnames.remove(position);  //remove from display list
            adapter.notifyItemRemoved(viewHolder.getLayoutPosition());  //update the view

        }
        @Override
        public void onChildDraw(Canvas c, RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, float dX, float dY, int actionState, boolean isCurrentlyActive) {
            // view the background view

            super.onChildDraw(c, recyclerView, viewHolder, dX, dY, actionState, isCurrentlyActive);
        }

        @Override
        public float getSwipeThreshold( RecyclerView.ViewHolder viewHolder){

            return .9f;
        }

Вот несколько картинок.

is delete not deleted

Так как мне установить порог считывания на половину экрана?

1 Ответ

0 голосов
/ 19 августа 2019

Вы должны вернуть 0.5f в getSwipeThreshold.Это значение по умолчанию, поэтому просто удалите это переопределение из вашего класса &

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...