Skip to content

Instantly share code, notes, and snippets.

@alirezanazari
Created September 6, 2021 07:46
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save alirezanazari/3369d0a010e86038a9bd4fc2c386b311 to your computer and use it in GitHub Desktop.
Save alirezanazari/3369d0a010e86038a9bd4fc2c386b311 to your computer and use it in GitHub Desktop.
private void setupViewPagerCards() {
List<RealmMobileBankCards> cards = new ArrayList<>(RealmMobileBankCards.getCards());
if (cards.size() == 0) return;
binding.vpCards.setAdapter(new BankCardsAdapter(cards));
binding.vpCards.setOffscreenPageLimit(cards.size() - 1);
initViewPager(cards.size());
setupRecyclerItems();
}
private void initViewPager(int size) {
binding.vpCards.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
setEnableIndicator(position);
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
createViewPagerIndicators(size);
}
private void createViewPagerIndicators(int size) {
for (int i = 0; i < size; i++) {
ImageView iv = new ImageView(binding.lytIndicators.getContext());
LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(24, 24);
lp.setMargins(8, 8, 8, 8);
iv.setLayoutParams(lp);
iv.setBackgroundResource(R.drawable.indicator_slider);
if (i == 0) iv.setSelected(true);
binding.lytIndicators.addView(iv);
}
}
private void setEnableIndicator(int position) {
int count = binding.lytIndicators.getChildCount();
if (position > count) return;
for (int i = 0; i < count; i++) {
binding.lytIndicators.getChildAt(i).setSelected(i == position);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment