我對整個碎片思維方式感到困惑。我已經按照教程介紹瞭如何使用Fragments
創建ViewPager
,如Google Play
應用。ViewPager中的Android碎片
我TabFragment類像這樣的:
public class SwipeyTabFragment extends SherlockFragment {
@Override
public void onCreate(Bundle b) {
super.onCreate(b);
Log.e("FRAGMENT: ", "Hello World!");
}
public static Fragment newInstance(String title) {
SwipeyTabFragment f = new SwipeyTabFragment();
Bundle args = new Bundle();
args.putString("title", title);
f.setArguments(args);
return f;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
ViewGroup root = (ViewGroup) inflater.inflate(R.layout.fragment_swipeytab, null);
final String title = getArguments().getString("title");
((TextView) root.findViewById(R.id.text)).setText(title);
return root;
}
}
我知道onCreateView
方法初始化佈局和類似Button
,ListView
等等controlls。
到我FragmentAdapter
private class SwipeyTabsPagerAdapter extends FragmentPagerAdapter implements SwipeyTabsAdapter {
private final Context mContext;
public SwipeyTabsPagerAdapter(Context context, FragmentManager fm) {
super(fm);
this.mContext = context;
}
@Override
public Fragment getItem(int position) {
return SwipeyTabFragment.newInstance(TITLES[position]);
}
@Override
public int getCount() {
return TITLES.length;
}
public TextView getTab(final int position, SwipeyTabs root) {
TextView view = (TextView) LayoutInflater.from(mContext).inflate(R.layout.swipey_tab_indicator, root, false);
view.setText(TITLES[position]);
view.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
mViewPager.setCurrentItem(position);
}
});
return view;
}
}
這將只是構建基於一個String數組,這將設置文本和Fragment
的頭一個新的標籤。
所以這就是我困惑的地方。舉例來說,我想要幾個不同佈局的片段,以及當用戶按下Button
,Picture
或其他什麼時,不同的交互方式。我該怎麼做?
謝謝。
謝謝!你有沒有時間給我一些基本的代碼示例,特別是getItem方法,我不知道我應該怎麼做。 – 2013-03-07 09:59:08