Я новичок в Recyclerview. Я хочу показать recyclerview для каждого элемента bottomnavigationview. Как я могу это сделать? - PullRequest
0 голосов
/ 26 октября 2019

это мой первый вопрос в stackoverflow.if вы ничего не понимаете, я прошу прощения за это: должен ли я использовать фрагмент вместо Framelayout ??

Вот мой xml нижней навигации

            ```
<FrameLayout
                android:id="@+id/fragment_container"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_above="@id/bottomnavid"
                >

            </FrameLayout>
            <android.support.design.widget.BottomNavigationView
                android:id="@+id/bottomnavid"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_alignParentBottom="true"
                app:menu="@menu/bottom_nav"
                /> 
  ```   

вот мой xml из recyclerview xml:
`` `

            <android.support.v7.widget.RecyclerView
                android:id="@+id/featurerecyclerid"
                android:layout_width="match_parent"
                android:layout_height="match_parent"/>
        </FrameLayout>
```

Вот мой класс myadapter:

```
            @NonNull
            @Override
            public Myviewholder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {

                View v = LayoutInflater.from(c).inflate(R.layout.cardview,viewGroup,false);
                Myviewholder VH = new Myviewholder(v);
                return VH;
            }
        //replacing the contents of a view 
            @Override
            public void onBindViewHolder(@NonNull Myviewholder myviewholder, int i) {
                myviewholder.nametext.setText(Citynames.get(i));


            }

            @Override
            public int getItemCount() {
                return Citynames.size();
            }
        }

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

        public class Feature extends Fragment {
            ArrayList<String> Citynames = new ArrayList<>    (Arrays.asList("dhaka","rongpur","bagura","sylhet","vhola"));
            @Nullable
            @Override
            public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
                final View view  = inflater.inflate(R.layout.feature,container,false);
                final FragmentActivity c = getActivity();
                final RecyclerView recyclerView = view.findViewById(R.id.featurerecyclerid);
                LinearLayoutManager layoutManager = new  LinearLayoutManager(c);
                recyclerView.setLayoutManager(layoutManager);
                 Myadapter myadapter = new Myadapter(Citynames,c);
                recyclerView.setAdapter(myadapter);
                return inflater.inflate(R.layout.feature,container,false);
            }
        }


 ```           

1 Ответ

0 голосов
/ 27 октября 2019

Я не уверен, что вы на самом деле пытаетесь сделать, что, по-моему, вы ошиблись с макетом, прежде чем пытаться перерабатывать просмотр, попробуйте несколько разных типов макетов, которые помогут понять, как работает объект дизайна в атрибуте xmal, попробуйте свой макет как этот

  <FrameLayout
     android:id="@+id/fragment_container"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_above="@id/bottomnavid"
                >
     <android.support.v7.widget.RecyclerView
                android:id="@+id/featurerecyclerid"
                android:layout_width="match_parent"
                android:layout_height="match_parent"/>
    <android.support.design.widget.BottomNavigationView
                android:id="@+id/bottomnavid"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_alignParentBottom="true"
                app:menu="@menu/bottom_nav"
                />
            </FrameLayout>

Вы создали какой-либо внутренний класс для инициализации вашего R.layout.cardview? Другое дело, что вам нужно инициализировать и установить RecyclerView с помощью Adapter в onViewCreated() методев вашем фрагменте.

    @Override
    public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState)
    {
        super.onViewCreated(view, savedInstanceState);
     final FragmentActivity c = getActivity();
                final RecyclerView recyclerView = view.findViewById(R.id.featurerecyclerid);
                LinearLayoutManager layoutManager = new  LinearLayoutManager(c);
                recyclerView.setLayoutManager(layoutManager);
                 Myadapter myadapter = new Myadapter(Citynames,c);
                recyclerView.setAdapter(myadapter);
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...