2

私はアンドロイドマーケットのように、さまざまなカテゴリの製品を表示しようとしています。私はthisライブラリでその動作を実装しており、それはすべて正常に動作しています。ビューページ内のレイアウトが異なります

ここで私がやりたいことは、カテゴリのページにリストビューを表示し、それぞれのリストにグリッドビューを表示することです。もちろん、それぞれのデータソースには異なるデータソースがあります。

どうすれば実現できますか?それはアダプターと関係がありますか?

答えて

1

FragmentPagerAdapterをオーバーライドし、getItemをオーバーライドし、ViewPagerのインデックス/位置に応じて適切なFragmentオブジェクト(またはListFragment)を返したいと思います。

あなたはViewPager<android.support.v4.view.ViewPager>)を含み、そしてあなたの活動でなければならない、あなたの活動のためのレイアウトXMLでonCreateあなたFragmentPagerAdapterを割り当てるためにViewPagersetAdapterメソッドを使用します。

+0

ありがとうございました。そして、私が適切なフラグメントを返すと、新しいものを作成するか、次のようなことをする必要があります。 return MyFragment.newInstance(position); – olistic

+0

いずれか動作します。 2つのフラグメントがどのように異なっているかによって異なります。それらを2つの異なるクラスに分割することは意味があります。あるいは、コンストラクタに渡すものに基づいて変化する単一のフラグメントを持つことは理にかなっています。個人的には、私は2つの異なる断片クラスに行きます。 –

+0

ありがとうございました – olistic

0

こんにちは、私はあなたがまたhere

9

からコードをダウンロードすることができ、このlink

に見て、私はあなたが見つけることができる1つの非常に良い例を見つける必要があり、私のチュートリアルでは、ビューページャでフラグメントを使用する方法について説明していますそうでなければ、このサイト上

https://github.com/astuetz/ViewPagerExtensions

このコードはあなたに役立つことを願っています。

@Override 
public Object instantiateItem(View collection, int position) { 
    View v = new View(PatientView.this.getApplicationContext()); 
    final LayoutInflater inflater = (LayoutInflater) PatientView.this 
      .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 

    switch (position) { 
    case 0: 
     v = inflater.inflate(R.layout.patientp1, 
       (ViewGroup) null, false); 
     ((Button) v.findViewById(R.id.pp1btnbck)).setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View arg0) { 
       finish(); 
      } 
     }); 

     break; 
    case 1: 
     v = inflater.inflate(R.layout.patientp2, null, false 
       ); 
     break; 
    default: 

     TextView tv = new TextView(PatientView.this.context); 
     tv.setText("Page " + position); 
     tv.setTextColor(Color.WHITE); 
     tv.setTextSize(30); 
     v = tv; 
     break; 
    } 
    ((ViewPager) collection).addView(v, 0); 

    return v; 
} 
+0

buddy私はこれを試していますが、ここで私はエラーが発生しています "タイプの不一致:ビューからintに変換できません" v = inflater.inflate(R.layout.patientp1、 (ViewGroup)null、false); –

+1

おかげでこれは私を助けます... –

+0

クールブロ..ありがとう –

関連する問題