首页 > 解决方案 > viewPager 介绍幻灯片助手

问题描述

我想在我的应用程序中使用介绍滑块 我通过这个视频学到了https://www.youtube.com/watch?v=byLKoPgB7yA&t=22s 我确实喜欢视频教程,但是当我滑动到任何页面时我遇到了点问题点(。)将被复制并增加 在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

我的问题在哪里,我该怎么办?

    package time.one.just.show.introslyder;

import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.text.Html;
import android.widget.LinearLayout;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {
    private ViewPager mSlideViewPager;
    private LinearLayout mDotsLayout;
    private SlyderAdapter slyderAdapter;
    //dots of any Slide pages
    private TextView[] mDots;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        mSlideViewPager = findViewById(R.id.viewPager);
        mDotsLayout = findViewById(R.id.dots);

        slyderAdapter = new SlyderAdapter(this);
        mSlideViewPager.setAdapter(slyderAdapter);
        addDotsIndiccator(0);


        mSlideViewPager.addOnPageChangeListener(viewListener);
    }

    private void addDotsIndiccator(int position) {
        mDots = new TextView[3];
        for (int i = 0; i < mDots.length; i++) {

            mDots[i] = new TextView(this);
            mDots[i].setText(Html.fromHtml("&#8226"));
            mDots[i].setTextSize(35);
            mDots[i].setTextColor(getResources().getColor(R.color.colorWhiteNearToGray));

            mDotsLayout.addView(mDots[i]);

        }
        if (mDots.length > 0) {
            mDots[position].setTextColor(getResources().getColor(R.color.colorWite));


        }
    }

    ViewPager.OnPageChangeListener viewListener = new ViewPager.OnPageChangeListener() {
        @Override
        public void onPageScrolled(int i, float v, int i1) {


        }

        @Override
        public void onPageSelected(int i) {
            addDotsIndiccator(i);
        }

        @Override
        public void onPageScrollStateChanged(int i) {

        }
    };}

这是我的 SideAdapter 类

package time.one.just.show.introslyder;

import android.content.Context;
import android.support.annotation.NonNull;
import android.support.v4.view.PagerAdapter;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.RelativeLayout;
import android.widget.TextView;

public class SlyderAdapter extends PagerAdapter {
    Context context;
    LayoutInflater layoutInflater;

    public SlyderAdapter(Context context) {
        this.context = context;
    }

    public int[] slide_imagesArray = {
            R.drawable.eat,
            R.drawable.men,
            R.drawable.sleep};
    public String[] slide_headerArray = {
            "EAT", "men", "code"};
    public String[] slide_descriptionArray = {
            "this is 1st", "this is 2nd", "this is 3rd"
    };

    @Override
    public int getCount() {
        return slide_headerArray.length;
    }

    @Override
    public boolean isViewFromObject(@NonNull View view, @NonNull Object o) {
        return view == o;
    }

    @NonNull
    @Override
    public Object instantiateItem(@NonNull ViewGroup container, int position) {
        layoutInflater = (LayoutInflater) context.getSystemService(context.LAYOUT_INFLATER_SERVICE);
        View view = layoutInflater.inflate(R.layout.slide_layoout, container, false);
        ImageView slideImageView = (ImageView) view.findViewById(R.id.slideImage);
        TextView slideheader = (TextView) view.findViewById(R.id.slideheader);
        TextView slidedescription = (TextView) view.findViewById(R.id.slideDescription);
        slideImageView.setImageResource(slide_imagesArray[position]);
        slideheader.setText(slide_headerArray[position]);
        slidedescription.setText(slide_descriptionArray[position]);
        container.addView(view);
        return view;
    }

    @Override
    public void destroyItem(@NonNull ViewGroup container, int position, @NonNull Object object) {
        container.removeView((RelativeLayout) object);
    }
}

这是我的 SliderLayout

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:orientation="vertical"
    android:layout_width="match_parent" android:layout_height="match_parent">

    <ImageView

        android:id="@+id/slideImage"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="89dp"
        app:srcCompat="@drawable/eat" />

    <TextView
        android:id="@+id/slideheader"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentStart="true"
        android:layout_alignParentBottom="true"
        android:layout_marginStart="122dp"
        android:layout_marginBottom="287dp"
        android:text="بدون نیاز به اینترنت"
        android:textSize="20sp"
        android:textStyle="bold" />

    <TextView
        android:id="@+id/slideDescription"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentStart="true"
        android:layout_alignParentBottom="true"
        android:layout_marginStart="0dp"
        android:layout_marginBottom="171dp"
        android:text="آرشیو کامل این خواننده محبوب همیشه در جیب شم ، ، هر کدام ز آهنگ ها را خواستید می توانید دانلود کنید و هر زمان دلتون خوست به آن ها گوش بدهید حتی بدون نیز به اینترنت" />
</RelativeLayout>

和 activtymain xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:background="@drawable/main_background"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">
    <android.support.v4.view.ViewPager
        android:id="@+id/viewPager"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

    </android.support.v4.view.ViewPager>

    <LinearLayout
        android:id="@+id/dots"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_centerHorizontal="true"
        android:orientation="horizontal"></LinearLayout>

</RelativeLayout>

标签: javaandroidandroid-studio

解决方案


我找到了一个解决方案,只需在我的应用程序中添加这个

mDotsLayout.removeAllViews();

谢谢你们


推荐阅读