8

Ho aggiornato la libreria di supporto alla progettazione dalla versione 22.2.0 alla 22.2.1 di ieri e sto affrontando uno strano comportamento con TabLayout. Nella versione 22.2.0, TabLayout funzionava bene, ma ora non viene visualizzato nel mio frammento a meno che non ruoti il ​​mio telefono (quindi appare). Non ho cambiato il mio codice, ha smesso di funzionare.TabLayout mancante dopo l'aggiornamento della libreria di supporto progettazione

Qui ci sono i frammenti:

public class FriendFragment extends Fragment { 
    @Bind(R.id.friendPager) 
    ViewPager viewPager; 
    @Bind(R.id.friendSlideTab) 
    TabLayout tabLayout; 
    ... 
    @Override 
    public void onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
    View v = inflater.inflate(R.layout.fragment_friend,container,false); 
    ButterKnife.bind(this,v); 

    return v; 
} 

@Override 
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { 
    super.onViewCreated(view, savedInstanceState); 
    list.add(new SlideFragment(getString(R.string.my_friends), new MyFriendsFragment())); 
    list.add(new SlideFragment(getString(R.string.add_friend), new SearchFriendFragment())); 

    adapter = new FragmentSliderAdapter(list, getChildFragmentManager()); 
    viewPager.setAdapter(adapter); 
    tabLayout.setupWithViewPager(viewPager); 
} 


<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:orientation="vertical"> 

    <android.support.design.widget.TabLayout 
     android:id="@+id/friendSlideTab" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content"> 

    </android.support.design.widget.TabLayout> 

    <android.support.v4.view.ViewPager xmlns:android="http://schemas.android.com/apk/res/android" 
     android:id="@+id/friendPager" 
     android:layout_width="match_parent" 
     android:layout_height="0px" 
     android:layout_weight="1" /> 

</LinearLayout> 

Io uso butterknife, non penso che avrebbe fatto alcuna differenza dal momento che nella versione precedente che stava lavorando con lui.

Grazie e qualsiasi aiuto sarebbe apprezzato!

+0

Non puoi mostrarci il tuo intero XML? –

+0

Certo, appena modificato. Grazie. – Leonardo

+0

Hai visto: https://github.com/chrisbanes/cheesesquare? Sto usando una configurazione simile. –

risposta

7

ho submited un bug sul codice di Google, ma non v'è una soluzione per il problema: Nel mio metodo onViewCreated, ho aggiunto:

if (ViewCompat.isLaidOut(tabLayout)) { 
    tabLayout.setupWithViewPager(viewPager); 
} else { 
    tabLayout.addOnLayoutChangeListener(new View.OnLayoutChangeListener() { 
     @Override 
     public void onLayoutChange(...) { 
      tabLayout.setupWithViewPager(viewPager); 

      tabLayout.removeOnLayoutChangeListener(this); 
     } 
    }); 
} 
+0

Ho avuto anche questo problema, il tuo workaround funziona, grazie per quello! Puoi condividere un link a bug di Google? Mi piacerebbe seguirlo –

+2

Resport di Google: https://code.google.com/p/android/issues/detail?id=180462 –

+0

Ho anche questo problema con la libreria di supporto 23.1.1. La tua soluzione alternativa non funziona per me. – user3749883

2

avuto lo stesso problema e ho pensato che mi fa impazzire perché un lavoro TabLayout improvvisamente si ruppe. Leggi il problema su Google Code ma hai riscontrato che la soluzione accettata non funziona su dispositivi non Lollipop.

Ma un'altra soluzione presentata nel thread problema ha lavorato per le API più anziani: other solution

tabLayout.post(new Runnable() { 
    @Override 
    public void run() { 
     tabLayout.setupWithViewPager(pager); 
    } 
}); 

speriamo che sia fissata in una versione futura della biblioteca.

EDIT (31/08/2015): Ho provato con il nuovo v23 della libreria di progettazione del supporto e sembra che sia stato risolto (testato su Lollipop e KitKat). Non c'è bisogno di generare una discussione ora :)

Problemi correlati