RecyclerView потерял свою позицию элемента при прокрутке - PullRequest
0 голосов
/ 04 декабря 2018

В настоящее время я работаю над реализацией RecyclerView для моего проекта.Когда я установил пункт на RecyclerView и прокрутил, я потерял его позицию.

Я использую условие If и else для щелчка и изменения цвета текста, но оно меняется, когда я не буду прокручивать элемент RecyclerView.Пожалуйста, предложите мне правильный способ справиться с этим условием.

adapter.setOnItemClickListner(new LoadVehicleTypeAdapter.setOnitemclick() {
@Override
public void ImageClick(int position, String Name,String Description,int id) {
    LinearLayout linearLayout = null;
    CustomTextView customTextView = null;
    try {
        for (int i = 0; i < messages.size(); i++) {
            linearLayout = (LinearLayout) rvVehicleTypes.getChildAt(i).findViewById(R.id.root1);
            customTextView = (CustomTextView) rvVehicleTypes.getChildAt(i).findViewById(R.id.frag_cartypes_inflated_name);
            if (i==position) {
                linearLayout.setBackgroundColor(Color.parseColor("#999999"));
                customTextView.setTextColor(Color.parseColor("#FFFFFF"));


            } else {
                linearLayout.setBackgroundColor(Color.parseColor("#f3f3f3"));
                customTextView.setTextColor(Color.parseColor("#2196F3"));
            }
        }
        //Toast.makeText(getActivity(),Name, Toast.LENGTH_SHORT).show();
    }
    catch (Exception e)
    {

    }
}

});

Ответы [ 2 ]

0 голосов
/ 04 декабря 2018

Пожалуйста, прочитайте документы RecyclerView.Также я рекомендую вам прочитать разницу между ListView и RecyclerView

Используете ли вы RecyclerView или ListView?Из вашего кода кажется, что вы используете ListView.

Если вы хотите использовать RecyclerView, пожалуйста, пройдите учебники.

Пожалуйста, пройдите этот учебник.Он расскажет вам, как использовать RecyclerView.Для слушателя щелчка следуйте этому учебнику.

0 голосов
/ 04 декабря 2018

Похоже, что вы новичок в мире разработки Android, с этим предположением позвольте мне провести вас через путь от ListView до RecyclerView.

ListView, мы привыкли следовать шаблону ViewHolder для управления элементами, которые перерабатываются, когда выпрокрутите список.

Теперь в RecyclerView эта функциональность встроена, а не встроена, но вы должны реализовать ее принудительно, я говорю о onCreateViewHolder и onBindViewHolder.

Так что теперь давайте сделаем шаг вперед в понимании того, как это работает, как только вы начнете прокручивать список вниз, раздутые представления элементов начнут перерабатываться, с этим ваш ранее раздутый ViewHolder (который фактически создается в onCreateViewHolder)используется повторно.

Теперь, чтобы решить эту проблему, вы должны запомнить положение и для того же большинства из нас использовали SparseBooleanArray

...