Ich entwickle einen Begrüßungsbildschirm, der vier Folien zeigen wird. Ich habe den Adapter erstellt und in der Aktivität festgelegt. Jedes Ding funktioniert gut, aber das Problem ist der Bildschirm zeigt nur erste und dritte Folie. Aber wenn ich manuell scrolle, kann ich alle Bildschirme sehen. Ich bin nicht in der Lage herauszufinden, warum dies geschieht.Bild-Schieberegler zeigt nicht alle Folien an
Hier ist meine Aktivitätsklasse:
public class ProgramLandingActivity extends AppCompatActivity implements View.OnClickListener {
private String TAG = ProgramLandingActivity.class.getSimpleName();
ActivityProgramLandingBinding binding;
private ViewPager viewPager;
private MyViewPagerAdapter myViewPagerAdapter;
private int[] layouts = {
R.drawable.slider3,
R.drawable.slider1,
R.drawable.slider2,
R.drawable.slider4};
private int[] icons = {
R.drawable.note,
R.drawable.mic,
R.drawable.up_arrow,
R.drawable.weight};
private String[] text = {
"Personalized Running Programs \n and flexible calender",
"Audio tips in Hindi and English \n From your mentors,\n Gul Panag and Milind Soman",
"Track your running, see achievements and share daily progress","includes weight loss and running performance nutrition plans"};
private ArrayList<Integer> layoutArray = new ArrayList<Integer>();
private ArrayList<Integer> layouticons = new ArrayList<Integer>();
private ArrayList<String> layouttext = new ArrayList<String>();
private static int currentPage = 0;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
binding = DataBindingUtil.setContentView(this,R.layout.activity_program_landing);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
}
intializeViews();
setAdapter();
}
private void setAdapter() {
for (int i = 0; i < layouts.length; i++) {
layoutArray.add(layouts[i]);
layouticons.add(icons[i]);
layouttext.add(text[i]);
myViewPagerAdapter = new MyViewPagerAdapter(this, layoutArray,layouticons,layouttext);
viewPager.setAdapter(myViewPagerAdapter);
CirclePageIndicator indicator = (CirclePageIndicator) findViewById(R.id.indicator);
indicator.setViewPager(viewPager);
Log.d("laypou_length", String.valueOf(layouts.length));
// Auto start of viewpager
final Handler handler = new Handler();
final Runnable Update = new Runnable() {
public void run() {
if (currentPage == layouts.length) {
currentPage = 0;
}
viewPager.setCurrentItem(currentPage++, true);
}
};
Timer swipeTimer = new Timer();
swipeTimer.schedule(new TimerTask() {
@Override
public void run() {
handler.post(Update);
}
}, 2500, 2500);
indicator.setOnPageChangeListener(new ViewPager.OnPageChangeListener(){
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
currentPage = position;
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
}
}
private void intializeViews() {
viewPager = (ViewPager) findViewById(R.id.view_pager);
}
Meine Adapterklasse:
class MyViewPagerAdapter extends PagerAdapter {
private ArrayList<Integer> layouts;
private ArrayList<Integer> icons;
private ArrayList<String> text;
private LayoutInflater inflater;
private Context context;
public MyViewPagerAdapter(Context context,ArrayList<Integer> layouts, ArrayList<Integer> icons,ArrayList<String> text) {
this.context = context;
this.layouts=layouts;
this.icons = icons;
this.text=text;
inflater = LayoutInflater.from(context);
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
View myImageLayout = inflater.inflate(R.layout.slider,container,false);
ImageView myImage = (ImageView) myImageLayout.findViewById(R.id.image1);
ImageView icon = (ImageView)myImageLayout.findViewById(R.id.icon);
TextViewWithFont slider_text = (TextViewWithFont)myImageLayout.findViewById(R.id.text_program_landing_body);
myImage.setImageResource(layouts.get(position));
icon.setImageResource(icons.get(position));
slider_text.setText(text.get(position));
container.addView(myImageLayout, 0);
return myImageLayout;
}
@Override
public int getCount() {
return layouts.size();
}
@Override
public boolean isViewFromObject(View view, Object object) {
return view == object;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
View view = (View) object;
container.removeView(view);
}
}
Kann mir jemand sagen, was ich falsch mache?
Ich habe diesen Link gesehen. Aber ich möchte automatisch scrollen. –
Bitte warten Ich werde mein Ans in wenigen Minuten aktualisieren –
Überprüfen Sie mein Update ans –