конца .: Я пытаюсь Просмотр RecyclerView внутри PagerViewRecyclerView в не связанном с просмотрами страниц показывает список
Проблема: RecyclerView не отображаются
Кроме того, я готов RecyclerView in PagerView Question зная, что я должен иметь другой фрагмент для Recycler и я его
NB:
- PagerView работает хорошо, как это отобразить один TextView
- RecyclerView был отображается нормально до того просмотра страницы
Изменения, которые я сделал, который после изменений появляется проблема:
- Перемещение RecyclerView на новый фрагмент класса
ExampleRecyclerViewFragment
public class ExampleRecyclerViewFragment extends Fragment {
public statlic ExampleAdapter adapter;
List<MainExampleObject> exampleList = new ArrayList<>();
public Example example = new Example();
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_two, container, false);
RecyclerView exampleRecyclerView = (RecyclerView) rootView.findViewById(R.id.ExampleRecyclerView);
exampleList = new ArrayList<>();
adapter = new ExampleAdapter(exampleList);
LinearLayoutManager llm = new LinearLayoutManager(getActivity());
llm.setSmoothScrollbarEnabled(true);
exampleRecyclerView.setScrollbarFadingEnabled(true);
exampleRecyclerView.setLayoutManager(llm);
exampleRecyclerView.setAdapter(adapter);
return rootView;
}
public void fetchExamples(final DataSnapshot Examples) {
//noinspection StatementWithEmptyBody
if (Examples.hasChild("Method 2")) {
} else {
Examples.getRef().child("Method 1").addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
example.setStepName(String.valueOf(dataSnapshot.getKey()));
for (DataSnapshot childSnapshot : dataSnapshot.child("Code").getChildren()) {
example.addCode(String.valueOf(childSnapshot.getValue()));
}
for (DataSnapshot childSnapshot : dataSnapshot.child("Explaination").getChildren()) {
example.addExplanation(String.valueOf(childSnapshot.getValue()));
}
example.addExample();
exampleList.add(example.getExampleObject());
}
@Override
public void onChildChanged(DataSnapshot dataSnapshot, String s) {
}
@Override
public void onChildRemoved(DataSnapshot dataSnapshot) {
}
@Override
public void onChildMoved(DataSnapshot dataSnapshot, String s) {
}
@Override
public void onCancelled(FirebaseError firebaseError) {
}
});
}
}
public ExampleRecyclerViewFragment() {
// Required empty public constructor
}
}
ViewPagerAdapter
class ViewPagerAdapter extends FragmentPagerAdapter {
private final List<Fragment> mFragmentList = new ArrayList<>();
private final List<String> mFragmentTitleList = new ArrayList<>();
ViewPagerAdapter(FragmentManager manager) {
super(manager);
}
@Override
public Fragment getItem(int position) {
return new ExampleRecyclerViewFragment();
}
@Override
public int getCount() {
return mFragmentTitleList.size();
}
void addFragment(String title) {
//mFragmentList.add(fragment);
mFragmentTitleList.add(title);
}
@Override
public CharSequence getPageTitle(int position) {
return mFragmentTitleList.get(position);
}
}
fragment_two.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".ExampleRecyclerViewFragment"
>
<android.support.v7.widget.RecyclerView
android:id="@+id/ExampleRecyclerView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>
<TextView
android:text="TextView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/textView"
/>
</LinearLayout>
Я думаю, что код будет нужен, если кому-то нужен, чтобы увидеть другой класс, просто дайте мне знать, с комментарием
Извините, что забыл упомянуть, что fetchExamples()
вызывается в главном класс в методе называется в OnCreate
new ExampleRecyclerViewFragment().fetchExamples(dataSnapshot.child("Examples"));
Большое спасибо
Спасибо большое за ваш ответ и объяснение, я думаю, что это будет работать, но есть небольшие вещи " не может его решить »(sticky, ThreadMode, getDefault), я понятия не имею о eventBus, поэтому бы вы мне помогли с этим –
Конечно. EventBus - это просто библиотека для фрагмента свободной активности и активности. Обычно вы пишете интерфейс для отправки данных из активности или основного фрагмента в фрагмент потребителя. EventBus заменяет это без необходимости объявления класса. Sticky означает, что потребительский фрагмент не должен присутствовать во время публикации данных. ThreadMode просто сообщает, что обновление происходит в потоке Main/UI. –
http: // greenrobot.org/eventbus/см. это для получения дополнительной информации о событиях –