Qual é a maneira correta de criar fragmentos com gridview? Posso fazer assim?
<GridView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/gridview1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#FF0000"
android:numColumns="2"
android:verticalSpacing="10dp"
android:horizontalSpacing="0dp"
android:stretchMode="columnWidth"
android:gravity="center"
/>
E como eu adiciono o adaptador ao gridview em tempo de execução para adicionar itens a ele?
private void initialisePaging() {
List<Fragment> fragments = new Vector<Fragment>();
fragments.add(Fragment.instantiate(this, fragment1.class.getName()));
fragments.add(Fragment.instantiate(this, fragment2.class.getName()));
fragments.add(Fragment.instantiate(this, fragment3.class.getName()));
this.mPagerAdapter = new MyPagerAdapter(super.getSupportFragmentManager(), fragments);
//this.mPagerAdapter.setListener(this);
Log.e("init", "message");
pager = (ViewPager)super.findViewById(R.id.viewpager_menu);
pager.setAdapter(this.mPagerAdapter);
GridView gridView = (GridView)findViewById(R.layout.menu1_fragment);
}
Quando faço isso, a gridview é nula e não consigo anexar o adaptador a ela.
Respostas:
1 para resposta № 1Você deve encontrar / configurar exibições em páginas individuais no instantiateItem
método do seu PagerAdapter
, não quando você está configurando o próprio pager. Cada página é criada preguiçosamente quando é necessária, e instantiateItem
é o que é chamado para cada página configurá-lo. No ponto em que você está tentando encontrar o seu GridView
Por exemplo, aqui ainda não existe porque o pager não o criou, e você não o localizou na página que deseja configurar.