2015-09-29 2 views
-1

Привет, ребята, мой recyclerView, он не полностью загружает данные адаптера при первом запуске, он будет загружаться только после того, как я прокручу recyclerView. Я думаю, что проблема связана с onMeasure recyclerView или высотой. Я уже пробовал другие методы, чтобы устранить проблему с помощью настраиваемых Layout.Manager, но никаких усилий.Android recyclerView не полностью загружается

Мои RecyclerView макета:

<android.support.v7.widget.RecyclerView 
      android:id="@+id/recycler_view_wines" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:scrollbars="vertical" 
      app:layout_behavior="@string/appbar_scrolling_view_behavior"/> 

Мой фрагмент:

@Override 
    public void onCreate(Bundle savedInstanceState) { 

     super.onCreate(savedInstanceState); 
     initialization(savedInstanceState); 
    } 

protected void initialization(Bundle savedInstanceState) { 
    super.initialization(savedInstanceState); 

    mRecyclerView = (RecyclerView) getView().findViewById(R.id.recycler_view_wines); 
    LinearLayoutManager layoutManager = new LinearLayoutManager(getActivity(), LinearLayoutManager.VERTICAL, false); 
    mRecyclerView.setLayoutManager(layoutManager); 
    mRecyclerView.setHasFixedSize(true); 
    loadingProgressBar = (ProgressWheel) getView().findViewById(R.id.loading_progressbar); 
    appbarLayout = (AppBarLayout) getView().findViewById(R.id.appbar); 
    collapsingToolbar = (CollapsingToolbarLayout) getView().findViewById(R.id.collapsing_toolbar); 
    tabLayout = (TabLayout) getView().findViewById(R.id.tabs); 
    backdropTextView = (TextView) getView().findViewById(R.id.backdrop_text_view); 

    setUpTabLayout(); 
    setUpToolbar(); 
    setUpFragmentCallback(); 
} 

public void onEventMainThread(OnResultEvent resultEvent) { 

     if (resultEvent!= null) { 
     setAdapter(resultEvent); 
     } 
    } 

private void setAdapter(OnResultEvent resultEvent) { 
    mRecyclerView.setAdapter(null); 
    RecyclerViewAdapter recyclerViewAdapter= new RecyclerViewAdapter(getActivity(), resultEvent); 
    mRecyclerView.setAdapter(recyclerViewAdapter); 
    RecyclerViewAdapter.notifyDataSetChanged(); 
} 

Пример:

On first load

+0

«Инициализация» сродни 'onCreateView'? Вы должны найти, где вызывается 'setAdapter'. – squeeish

+0

Я предполагаю, что вы спрашиваете, вызвана ли моя инициализация в onCreate, да. если ничего не покажут, и приложение дало мне исключение с помощью исключающего указателя. – firetrap

+0

Хорошо, моя догадка где-то в вашем коде, 'setAdapter' будет вызываться, либо в сегменте кода addOnScrollListener, либо в аналогичном событии touch. – squeeish

ответ

2

RecyclerView не переносит содержимое. Назначьте его постоянным значением и, возможно, вы сможете увидеть весь результат. Однажды у меня была такая же проблема. Мне пришлось обрабатывать высоту RecyclerView во время выполнения.

+0

. Я попробую и дам отзывы – firetrap

+0

Это потому, что CoordinatorLayout не знает высоту imageView внутри CollapsingToolbarLayout, поэтому после того, как я установил высоту, все было в порядке, но ваш ответ поможет мне разобраться в проблеме. – firetrap

+1

Да, вы правы. Я рад, что могу вам помочь. Счастливое кодирование! –

Смежные вопросы