如何在android中使用ViewPager创建网格样式图标?
我有一个 ViewPagerLibrary 用于我的主视图。主视图有 2 个页面(水平滚动到右侧和左侧)。我想做的是在每个页面添加一个网格样式图标,就像 Android 主屏幕或 Ice Cream Sandwich 中的新应用程序屏幕一样。我已经正确实现了 ViewPager,并且可以在左右之间滑动,但我对如何准确地将网格和图标添加到每个页面感到困惑。当然,每个页面都会有一组不同的图标。我不知道从哪里开始,有人能指出我正确的方向吗?
这是我的主要 xml:
<android.support.v4.view.ViewPager
android:id="@+id/pager"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:background="@drawable/background_main"
/>
<com.viewpagerindicator.CirclePageIndicator
android:id="@+id/indicator"
android:padding="10dip"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
/>
</LinearLayout>
这是我的主要活动:
public class Main extends FragmentActivity
{
PagerAdapter mAdapter;
ViewPager mPager;
PageIndicator mIndicator;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
initialisePaging();
mPager = (ViewPager)findViewById(R.id.pager);
mPager.setAdapter(mAdapter);
CirclePageIndicator indicator = (CirclePageIndicator)findViewById(R.id.indicator);
mIndicator = indicator;
indicator.setViewPager(mPager);
indicator.setSnap(true);
}
private void initialisePaging() {
List<Fragment> fragments = new Vector<Fragment>();
fragments.add(Fragment.instantiate(this, MainScreenFragmentOne.class.getName()));
fragments.add(Fragment.instantiate(this, MainScreenFragmentTwo.class.getName()));
mAdapter = new PagerAdapter(super.getSupportFragmentManager(), fragments);
}
public class PagerAdapter extends FragmentPagerAdapter {
private List<Fragment> fragments;
public PagerAdapter(FragmentManager fm, List<Fragment> fragments) {
super(fm);
this.fragments = fragments;
}
@Override
public Fragment getItem(int position) {
return this.fragments.get(position);
}
@Override
public int getCount() {
return this.fragments.size();
}
}
}
如您所见,我正在添加两个页面(片段)。我真的不希望每个片段都有一个类,而是希望有 1 个类,我可以在其中为两个页面创建图标。
有人可以帮忙吗?
谢谢你们!
I have a ViewPagerLibrary which is used for my main view. The main view has 2 pages (horizontally scrolling to the right and left). What I would like to do is add a grid style icons to each of the pages, much like the android home screen or the new applications screen in Ice Cream Sandwich. I have the ViewPager implemented properly and I can swipe between left and right but I am confused on how exactly I can add the grid and icons to each of the pages. Of course, each page will feature a different set of icons. I have no idea where to start, can anyone point me in the right direction?
This is my main xml:
<android.support.v4.view.ViewPager
android:id="@+id/pager"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:background="@drawable/background_main"
/>
<com.viewpagerindicator.CirclePageIndicator
android:id="@+id/indicator"
android:padding="10dip"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
/>
</LinearLayout>
and this is my main activity:
public class Main extends FragmentActivity
{
PagerAdapter mAdapter;
ViewPager mPager;
PageIndicator mIndicator;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
initialisePaging();
mPager = (ViewPager)findViewById(R.id.pager);
mPager.setAdapter(mAdapter);
CirclePageIndicator indicator = (CirclePageIndicator)findViewById(R.id.indicator);
mIndicator = indicator;
indicator.setViewPager(mPager);
indicator.setSnap(true);
}
private void initialisePaging() {
List<Fragment> fragments = new Vector<Fragment>();
fragments.add(Fragment.instantiate(this, MainScreenFragmentOne.class.getName()));
fragments.add(Fragment.instantiate(this, MainScreenFragmentTwo.class.getName()));
mAdapter = new PagerAdapter(super.getSupportFragmentManager(), fragments);
}
public class PagerAdapter extends FragmentPagerAdapter {
private List<Fragment> fragments;
public PagerAdapter(FragmentManager fm, List<Fragment> fragments) {
super(fm);
this.fragments = fragments;
}
@Override
public Fragment getItem(int position) {
return this.fragments.get(position);
}
@Override
public int getCount() {
return this.fragments.size();
}
}
}
As you can see, I am adding two pages (fragments). I would really like to not have a class for each fragments, rather I would like to have 1 class where I can create icons for both pages.
Can anyone help?
Thanks guys!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论