Я работаю над функцией FragmentActivity, которая содержит ViewPager. ViewPager предоставляет три фрагмента, используя FragmentPagerAdapter. Так что я могу реализовать экраны прокрутки с помощью viewpager.I могу прокрутить страницы и нажать следующую кнопку, я также могу перейти на следующую страницу/фрагмент. Следующий код работает для меня:Анимация точек с использованием представления пейджера
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();
}
}
Я хочу имп lement следующие экраны:
Эти три экрана будут отображаться одна за другой после считывания или нажав кнопку рядом .Orange цвет точка говорит мне на какой фрагмент я сейчас работаю. Пожалуйста, расскажите мне, как я могу дать анимацию этим точкам?
Edited Код
Я использовал RadioGroup для реализации этой concept.Consider следующий код:
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) {
}
});
Он работает в какой-то степени, но я не получаю точный цвет, упоминается в проекте .Please проверить следующий скриншот:
После добавления некоторых стилей к радио biutton предложенных Ankit Aggrawal я получаю следующее:
http://www.androprogrammer.com/2015/06/view-pager-with-circular-indicator.html –
HTTP: // nilukad .blogspot.in/2014/01/image-gallary-with-dot-indicater.html –
Посмотрите мое решение: http://stackoverflow.com/a/38459310/4631935 – RediOne1