java - viewPager 的介绍幻灯片助手

标签 java android android-studio

我想在我的应用程序中使用介绍 slider 我通过这个视频学到了它https://www.youtube.com/watch?v=byLKoPgB7yA&t=22s 我确实喜欢视频教程,但我对点有疑问 当我滑动到任何页面时,点(.)将被复制并增加 enter image description here

enter image description here

enter image description here

我的问题出在哪里,我应该做什么?

    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>

最佳答案

我找到了解决办法 只需将其添加到我的应用程序中

mDotsLayout.removeAllViews();

谢谢大家

关于java - viewPager 的介绍幻灯片助手,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53961711/

相关文章:

android - 版本冲突更新为Play-Services 9.4.0 Android Studio 2.2

java - 使用泛型调用方法

android - 从我的 Android 应用程序中调用 Adob​​e Reader

java - Android TextView.setText() 在按钮 onClickListener 中不执行任何操作

android - 无法在 Windows 10 上卸载 Android Studio

android - 如何修复 Android Studio 3.5 上的 'Waiting for build to finish' 错误

java - 从嵌套 JAR 加载 Velocity 模板

java - 线程和静态变量

java - Hibernate - 解析映射文件(.hbm.xml)时出现问题

Android 应用程序无法启动 noClassDefFoundError