我想在我的Android应用程序中添加一个简介,告知用户应用程序的工作原理。如果首选设置简介为false,则仅显示此简介。所以在这个介绍中,将会有3个图像,最后会有一个页面,带有一些文本和两个按钮,以便用户通过登录来访问应用程序。每个图像之间的变化将通过滑动运动(从右到左+,从左到右 - )进行。我该怎么办?
答案 0 :(得分:3)
这可以通过使用Fragments和ViewPager以及FragmentPagerAdapter来完成。看看这个文档:
FragmentPagerAdapter:http://developer.android.com/reference/android/support/v4/app/FragmentPagerAdapter.html
ViewPager: http://developer.android.com/reference/android/support/v4/view/ViewPager.html
您可以根据ViewPager中的id实例化一个片段,该ID将指示要在图像片段中显示的图像。因此,对于三个图像,您实例化一个新片段,该片段基于FragmentPagerAdapter中的当前页面设置片段中的图像。第二个片段可以是最后一个用于登录按钮和文本的片段。
FragmentActivity(或AppCompatActivity)中定义的适配器的Ex
public class MyAdapter extends FragmentPagerAdapter {
public MyAdapter(FragmentManager fm) {
super(fm);
}
@Override
public int getCount() {
return NUM_ITEMS;
}
@Override
public Fragment getItem(int position) {
if(position < 3)
return ImageFragment.newInstance(position);
else
return new LoginFragment();
}
}
介绍中各种图像的图片片段:
public static class ImageFragment extends Fragment{
private int mPosition;
public ImageFragment(){
}
public static ImageFragment newInstance(int pos){
ImageFragment frag = new ImageFragment();
Bundle args = new Bundle();
args.putInt("pos", pos);
frag.setArguments(args);
return frag;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mPosition = getArguments().getInt("pos");
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.fragment_image, container, false);
ImageView backgroundView = (ImageView) v.findViewById(R.id.background_image);
switch(mPosition){
case 0:
//set background view image 1
case 1:
//set background view image 2
default:
//set background view image 3
}
return v;
}
}
答案 1 :(得分:1)
我建议使用ViewPager。从开发人员指南
查看本教程http://developer.android.com/training/animation/screen-slide.html
如果你想为每个页面添加功能而不是只有图像,那么你可以实现一个fragmentStatePagerAdapter,然后将所有功能放在每个片段中。这是一个实现它的教程。
http://www.truiton.com/2013/05/android-fragmentstatepageradapter-example/
答案 2 :(得分:1)
我认为我们可以通过使用回收站视图本身来做到这一点。 在回收站视图中使用PagerSnapHelper布局管理器,我们可以实现滑动来更改图像。
recyclerView.setLayoutManager(new LinearLayoutManager(this,
LinearLayoutManager.HORIZONTAL, false));
// add pager behavior
PagerSnapHelper snapHelper = new PagerSnapHelper();
snapHelper.attachToRecyclerView(recyclerView);