Как сделать автоматический слайдер изображений в BottomNavigation Activity? - PullRequest
0 голосов
/ 11 октября 2019

Я пытался сделать автоматический слайдер изображений в ходе навигации по дну и постоянно получал вход в журнал, который говорил что-то не так в моем XML (все в порядке при создании приложения, т.е. не возникает ошибка во время сборки). И как япри быстром запуске происходит сбой. Пожалуйста, помогите

Вот мой Activity_main.xml:

<?xml version="1.0" encoding="utf-8"?><androidx.constraintlayout.widget.ConstraintLayout 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:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingTop="?attr/actionBarSize">


<com.google.android.material.bottomnavigation.BottomNavigationView
    android:id="@+id/nav_view"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_marginStart="0dp"
    android:layout_marginEnd="0dp"
    android:background="?android:attr/windowBackground"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintLeft_toLeftOf="parent"
    app:layout_constraintRight_toRightOf="parent"
    app:menu="@menu/bottom_nav_menu" >
</com.google.android.material.bottomnavigation.BottomNavigationView>

<fragment
    android:id="@+id/nav_host_fragment"
    android:name ="androidx.navigation.fragment.NavHostFragment"
    android:layout_width="0dp"
    android:layout_height="253dp"
    app:defaultNavHost="true"
    app:layout_constraintBottom_toTopOf="@id/nav_view"
    app:layout_constraintLeft_toLeftOf="parent"
    app:layout_constraintRight_toRightOf="parent"
    app:layout_constraintTop_toTopOf="parent"
    app:layout_constraintVertical_bias="0.9"
    app:navGraph="@navigation/mobile_navigation" />


<com.smarteist.autoimageslider.SliderView
    android:id="@+id/imageSlider"
    android:layout_width="match_parent"
    android:layout_height="200dp"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent"
    app:layout_constraintVertical_bias="0.0"
    app:sliderAnimationDuration="600"
    app:sliderAutoCycleDirection="back_and_forth"
    app:sliderAutoCycleEnabled="true"
    app:sliderCircularHandlerEnabled="true"
    app:sliderIndicatorAnimationDuration="600"
    app:sliderIndicatorGravity="center_horizontal|bottom"
    app:sliderIndicatorMargin="15dp"
    app:sliderIndicatorOrientation="horizontal"
    app:sliderIndicatorPadding="3dp"
    app:sliderIndicatorRadius="2dp"
    app:sliderIndicatorSelectedColor="#5A5A5A"
    app:sliderIndicatorUnselectedColor="#FFF"
    app:sliderScrollTimeInSec="1"
    app:sliderStartAutoCycle="true">

    <androidx.constraintlayout.widget.ConstraintLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <ImageView
            android:id="@+id/iv"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:scaleType="centerCrop"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent" />

        <TextView
            android:id="@+id/tv"
            android:layout_width="265dp"
            android:layout_height="31dp"
            android:fontFamily="@font/maven_pro"
            android:textAlignment="center"
            android:textColor="#FFFFFF"
            app:layout_constraintBottom_toBottomOf="@+id/iv"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent"
            app:layout_constraintVertical_bias="0.905" />
    </androidx.constraintlayout.widget.ConstraintLayout>
</com.smarteist.autoimageslider.SliderView>

MainActivity.java:

@Override
   protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    BottomNavigationView navView = findViewById(R.id.nav_view);
    AppBarConfiguration appBarConfiguration = new AppBarConfiguration.Builder(
            R.id.navigation_home, R.id.navigation_dashboard, R.id.navigation_notifications)
            .build();
    NavController navController = Navigation.findNavController(this, R.id.nav_host_fragment);
    NavigationUI.setupActionBarWithNavController(this, navController, appBarConfiguration);
    NavigationUI.setupWithNavController(navView, navController);
    SliderView sliderView = findViewById(R.id.imageSlider);

    SliderAdapterExample adapter = new SliderAdapterExample(this);

    sliderView.setSliderAdapter(adapter);

    sliderView.setIndicatorAnimation(IndicatorAnimations.WORM); //set indicator animation by using SliderLayout.IndicatorAnimations. :WORM or THIN_WORM or COLOR or DROP or FILL or NONE or SCALE or SCALE_DOWN or SLIDE and SWAP!!
    sliderView.setSliderTransformAnimation(SliderAnimations.SIMPLETRANSFORMATION);
    sliderView.setAutoCycleDirection(SliderView.AUTO_CYCLE_DIRECTION_BACK_AND_FORTH);
    sliderView.setIndicatorSelectedColor(Color.WHITE);
    sliderView.setIndicatorUnselectedColor(Color.GRAY);
    sliderView.setScrollTimeInSec(4); //set scroll delay in seconds :
    sliderView.startAutoCycle();

    getSupportActionBar().hide();
}

log:

2019-10-11 14:57:55.934 12595-12595/com.example.testingmenu E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.testingmenu, PID: 12595
android.view.InflateException: Binary XML file line #24: Binary XML file line #24: Error inflating class fragment
Caused by: android.view.InflateException: Binary XML file line #24: Error inflating class fragment
Caused by: java.lang.IllegalArgumentException: Binary XML file line #24: Duplicate id 0x7f0a0092, tag null, or parent id 0x7f0a0051 with another fragment for androidx.navigation.fragment.NavHostFragment
    at androidx.fragment.app.FragmentManagerImpl.onCreateView(FragmentManagerImpl.java:3212)
    at androidx.fragment.app.FragmentController.onCreateView(FragmentController.java:134)
    at androidx.fragment.app.FragmentActivity.dispatchFragmentsOnCreateView(FragmentActivity.java:357)
    at androidx.fragment.app.FragmentActivity.onCreateView(FragmentActivity.java:336)
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:780)
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:730)
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:863)
    at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:824)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:515)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:423)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:374)
    at com.example.testingmenu.SliderAdapterExample.onCreateViewHolder(SliderAdapterExample.java:22)
    at com.example.testingmenu.SliderAdapterExample.onCreateViewHolder(SliderAdapterExample.java:12)
    at com.smarteist.autoimageslider.SliderViewAdapter.instantiateItem(SliderViewAdapter.java:35)
    at androidx.viewpager.widget.ViewPager.addNewItem(ViewPager.java:1010)
    at androidx.viewpager.widget.ViewPager.populate(ViewPager.java:1158)
    at androidx.viewpager.widget.ViewPager.populate(ViewPager.java:1092)
    at androidx.viewpager.widget.ViewPager.onMeasure(ViewPager.java:1622)
    at android.view.View.measure(View.java:23187)
    at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6752)
    at android.widget.FrameLayout.onMeasure(FrameLayout.java:185)
    at android.view.View.measure(View.java:23187)
    at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6752)
    at android.widget.FrameLayout.onMeasure(FrameLayout.java:185)
    at android.view.View.measure(View.java:23187)
    at androidx.constraintlayout.widget.ConstraintLayout.internalMeasureChildren(ConstraintLayout.java:1227)
    at androidx.constraintlayout.widget.ConstraintLayout.onMeasure(ConstraintLayout.java:1572)
    at android.view.View.measure(View.java:23187)
    at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6752)
    at android.widget.FrameLayout.onMeasure(FrameLayout.java:185)
    at androidx.appcompat.widget.ContentFrameLayout.onMeasure(ContentFrameLayout.java:143)
    at android.view.View.measure(View.java:23187)
    at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6752)
    at androidx.appcompat.widget.ActionBarOverlayLayout.onMeasure(ActionBarOverlayLayout.java:403)
    at android.view.View.measure(View.java:23187)
    at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6752)
    at android.widget.FrameLayout.onMeasure(FrameLayout.java:185)
    at android.view.View.measure(View.java:23187)
    at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6752)
    at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1535)
    at android.widget.LinearLayout.measureVertical(LinearLayout.java:825)
    at android.widget.LinearLayout.onMeasure(LinearLayout.java:704)
    at android.view.View.measure(View.java:23187)
    at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6752)
    at android.widget.FrameLayout.onMeasure(FrameLayout.java:185)
    at com.android.internal.policy.DecorView.onMeasure(DecorView.java:751)
    at android.view.View.measure(View.java:23187)
    at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:2756)
    at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1605)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...