
1.WelcomeFragmentActivity.java
public class WelcomeFragmentActivity extends FragmentActivity { private List<Fragment> ListFragments; @OverrIDe protected voID onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentVIEw(R.layout.fragment_activity_welcome); //FindVIEwByID final VIEwPager vIEwPager = (VIEwPager) findVIEwByID(R.ID.vIEwPager); button btnNext = (button) findVIEwByID(R.ID.btnNext); //Initializing the List ListFragments = new ArrayList<Fragment>(); //initializing the fragments WelcomeOneFragment welcomeOneFragment = new WelcomeOneFragment(); WelcomeTwoFragment welcomeTwoFragment = new WelcomeTwoFragment(); WelcomeThreeFragment welcomeThreeFragment = new WelcomeThreeFragment(); //Adding Fragments to List ListFragments.add(welcomeOneFragment); ListFragments.add(welcomeTwoFragment); ListFragments.add(welcomeThreeFragment); //initializing PagerAdapterWelcome PagerAdapterWelcome pagerAdapterWelcome = new PagerAdapterWelcome(getSupportFragmentManager(),ListFragments); vIEwPager.setAdapter(pagerAdapterWelcome); //On clicking next button move to next fragment btnNext.setonClickListener(new VIEw.OnClickListener() { @OverrIDe public voID onClick(VIEw vIEw) { Log.e("Current position",String.valueOf(vIEwPager.getCurrentItem())); vIEwPager.setCurrentItem(vIEwPager.getCurrentItem() + 1); // If vIEw pager is displaying the 3rd fragment,move to WelcomeActivity if (vIEwPager.getCurrentItem() == 2) { Log.e("Curent position",String.valueOf(vIEwPager.getCurrentItem())); startActivity(new Intent(WelcomeFragmentActivity.this,WelcomeActivity.class)); } } }); }} 2.PagerAdapterWelcome.java
public class PagerAdapterWelcome extends FragmentPagerAdapter { private List<Fragment> ListFragments; public PagerAdapterWelcome(FragmentManager fm,List<Fragment> ListFragments) { super(fm); this.ListFragments = ListFragments; } @OverrIDe public Fragment getItem(int i) { return ListFragments.get(i); } @OverrIDe public int getCount() { return ListFragments.size(); }} 我想实现以下屏幕:
在刷卡或点击下一个按钮后,这三个屏幕将一个接一个地显示.点的橙色告诉我我正在处理哪个片段.请指导我如何给这些点动画?
编辑代码
我使用了RadioGroup来实现这个概念.考虑以下代码:
vIEwPager.setonPagechangelistener(new VIEwPager.OnPagechangelistener() { @OverrIDe public voID onPageScrolled(int position,float positionOffset,int positionOffsetPixels) { } @OverrIDe public voID onPageSelected(int position) { position = vIEwPager.getCurrentItem(); Log.e("position",String.valueOf(position)); if (position == 0) radioGroup.check(R.ID.radioBtnOne); else if (position == 1) { radioGroup.check(R.ID.radioBtnTwo); } else radioGroup.check(R.ID.radioBtnThree); } @OverrIDe public voID onPageScrollStateChanged(int state) { } }); 它在某种程度上工作,但我没有得到设计中提到的确切颜色.请检查以下屏幕截图:
在Ankit Aggrawal建议的无线电biutton中添加一些样式后,我得到以下内容:
解决方法 我通过使用radiogroup实现了这一点.使用相对布局将该无线电组放置在vIEwpager上方.创建一个具有所需点数的单选按钮作为单选按钮.不要给单选按钮提供任何文本.编辑:下面是完整的代码.
像这样创建你的布局
<relativeLayout xmlns:androID="http://schemas.androID.com/apk/res/androID" androID:layout_wIDth="match_parent" androID:layout_height="match_parent" androID:orIEntation="vertical"> <RadioGroup androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content" androID:layout_centerHorizontal="true" androID:orIEntation="horizontal" androID:ID="@+ID/radioGroup"> <Radiobutton androID:ID="@+ID/radioBtnOne" androID:layout_wIDth="15dp" androID:layout_height="15dp" androID:background="@drawable/button_selector" androID:button="@null"/> <Radiobutton androID:ID="@+ID/radioBtnTwo" androID:layout_wIDth="15dp" androID:layout_height="15dp" androID:background="@drawable/button_selector" androID:button="@null"/> <Radiobutton androID:ID="@+ID/radioBtnThree" androID:layout_wIDth="15dp" androID:layout_height="15dp" androID:background="@drawable/button_selector" androID:button="@null"/> </RadioGroup> <androID.support.v4.vIEw.VIEwPager androID:ID="@+ID/vIEwPager" androID:layout_wIDth="match_parent" androID:layout_height="match_parent" /></relativeLayout>
现在在vIEwpager中,放一个onPagechangelistener
vIEwPager.setonPagechangelistener(new VIEwPager.OnPagechangelistener() { @OverrIDe public voID onPageScrolled(int position,int positionOffsetPixels) { } @OverrIDe public voID onPageSelected(int position) { radioGroup.check(radioGroup.getChildAt(position).getID()); } @OverrIDe public voID onPageScrollStateChanged(int state) { } }); 以下是单选按钮button_selector.xml的选择器
<?xml version="1.0" enCoding="utf-8"?><selector xmlns:androID="http://schemas.androID.com/apk/res/androID" > <item androID:state_checked="true" androID:state_pressed="false" androID:drawable="@drawable/toggle_button_selected"/> <item androID:state_checked="false" androID:state_pressed="false" androID:drawable="@drawable/toggle_button_unselected"/> <item androID:state_checked="true" androID:state_pressed="true" androID:drawable="@drawable/toggle_button_selected"/> <item androID:state_checked="false" androID:state_pressed="true" androID:drawable="@drawable/toggle_button_unselected"/></selector>
现在,对于选定按钮,创建此toggle_button_selected_drawable.xml
<?xml version="1.0" enCoding="utf-8" ?><shape xmlns:androID="http://schemas.androID.com/apk/res/androID" androID:shape="rectangle" > <corners androID:radius="10dp" /> <solID androID:color="@color/your_selection_color" /></shape>
类似地,对于未选择的按钮,创建此toggle_button_unselected_drawable.xml
<?xml version="1.0" enCoding="utf-8" ?><shape xmlns:androID="http://schemas.androID.com/apk/res/androID" androID:shape="rectangle" > <corners androID:radius="10dp" /> <solID androID:color="@color/grey" /></shape>总结
以上是内存溢出为你收集整理的android – 使用view pager的点动画全部内容,希望文章能够帮你解决android – 使用view pager的点动画所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)