Добавить нижнее меню для элемента RecyclerView - PullRequest
0 голосов
/ 21 февраля 2019

У меня есть окно рециркулятора, у которого будет кнопка выбора справа, и я хочу добиться чего-то вроде анимации ниже:

desired result

IЯ использую this в качестве справочной информации, но у меня есть некоторые разногласия.

Сначала я хочу узнать, смогу ли я вообще это сделать, потому что все, что я нахожу при добавлении меню в обзор реселлера, это добавлениевсплывающее базовое меню, а это не то, что мне нужно.

У меня также есть некоторые отключения при доступе к меню из окна просмотра, я могу получить к нему доступ из своего фрагмента, но я думаю, что мне нужно вызватьэто из окна просмотра, поэтому у меня есть строка, по которой щелкнуло, чтобы вызвать меню.

Если я переосмысливаю реализацию и есть более простой подход, я открыт для прослушивания.

1 Ответ

0 голосов
/ 21 февраля 2019

Я не уверен, понимаю ли я, что вы хотите, но если у вас есть кнопка, которая существует в элементах строк в обзоре переработчика, чтобы при каждом нажатии кнопки выскочить ящик внизу экрана, тогда выследует просто использовать обычную настройку ящика ( Навигационный ящик , Создать навигационный ящик ) для действия и добавить к кнопкам строки OnClickListener (что можно сделать в onCreateViewHolder() или конструктор держателя), который запускает ящик, вызывая openDrawer().Обратите внимание: чтобы выполнить последнее, вы должны передать блок навигации (DrawerLayout) в адаптер через конструктор адаптеров (что означает, что вашему адаптеру нужно что-то для хранения DrawerLayout in).

Итак

public class CustomAdaptor extends RecyclerView.Adapter<CustomViewHolder>{
        private Context mContext;
        private int mLayoutResourceId;
        private ArrayList<Item> items;
        private DrawerLayout drawer;

        public CustomAdaptor (Context context, int resource, ArrayList<Item> itemArray, DrawerLayout drawer) {
            this.mContext = context;
            this.mLayoutResourceId = resource;
            this.items = itemArray;
            this.drawer = drawer;
        }

        public CustomViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
           View view = LayoutInflater.from(mContext).inflate(mLayoutResourceId, parent, false);
           final CustomViewHolder holder = new CustomViewHolder(view);

           holder.mbutton.setOnClickListener(new OnClickListener() {
               @Override
               public void onClick(View view) {
                   //Check if drawer is null and if not then call
                   drawer.drawerOpen();
                }
           });
           return holder;
        }
}

где mButton - кнопка в держателе / ​​ряду.Заметьте, я не проверял это, так что может быть что-то, что я забыл.

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