Android Fragments 如何在viewpager2中更改圆角

wgeznvg7  于 2023-08-06  发布在  Android
关注(0)|答案(3)|浏览(261)

嘿,我在android中使用viewpager 2。我想给予圆角视图寻呼机2,但它不工作。有人能给我指路吗

<androidx.viewpager2.widget.ViewPager2
     android:id="@+id/galleryPager"
     android:background="@drawable/round_drawable"
     android:layout_width="match_parent"
     android:layout_height="224dp"
     android:layout_marginBottom="10dp"
     app:layout_constraintEnd_toEndOf="parent"
     app:layout_constraintHorizontal_bias="1.0"
     app:layout_constraintStart_toStartOf="parent"
     app:layout_constraintTop_toTopOf="parent" />

字符串

round_drawable.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <corners android:radius="26dp" />
    <solid android:color="@color/orange" />
</shape>


更新
我在我的viewpager适配器中使用了RecyclerView.Adapter,项目xml如下所示

viewpager_item_layout.xml用于reyclerview

<?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/mainContainer"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <androidx.constraintlayout.widget.ConstraintLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@drawable/rounded_corner">

        <ImageView
            android:id="@+id/mainImage"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:scaleType="centerInside"
            android:src="@drawable/gallery_placeholder"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent"
            tools:ignore="ContentDescription" />

    </androidx.constraintlayout.widget.ConstraintLayout>

</androidx.constraintlayout.widget.ConstraintLayout>

viewpager.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"
        android:id="@+id/galleryContainer"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
       >

    <androidx.viewpager2.widget.ViewPager2
             android:id="@+id/galleryPager"
             android:background="@android:color/transparent"
             android:layout_width="match_parent"
             android:layout_height="224dp"
             android:layout_marginBottom="10dp"
             app:layout_constraintEnd_toEndOf="parent"
             app:layout_constraintHorizontal_bias="1.0"
             app:layout_constraintStart_toStartOf="parent"
             app:layout_constraintTop_toTopOf="parent" />

    </androidx.constraintlayout.widget.ConstraintLayout>


现在看起来像这样。我在四面都做了标记,看起来好像有透明的东西。


的数据
注意事项:
我没有在viewpager中使用fragment,而是在viewpager.adapter中使用reyclerview adapter

fhg3lkii

fhg3lkii1#

在viewpager中为你的元素使用圆形背景,而不是特殊的viewpager
例如,你有2个片段内的视图分页器和每个片段包含线性布局内,使用圆形背景的线性布局,如果你需要的例子告诉我:))

z9gpfhce

z9gpfhce2#

viewPager页面片段将在ViewPager的背景上绘制时模糊背景;如果你想强制你必须使用一个透明的背景上的根布局的设置android:background="@android:color/transparent"

ct3nt3jp

ct3nt3jp3#

已解决。CardView可用于裁剪ViewPager或ViewPager2的角并创建圆角。
就像这样:

<androidx.cardview.widget.CardView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/bottom_bar"
android:layout_width="match_parent"
android:layout_height="115dp"
app:cardCornerRadius="15dp">

<androidx.viewpager2.widget.ViewPager2
    android:id="@+id/view_pager"
    android:layout_width="match_parent"
    android:layout_height="100dp" />
</androidx.cardview.widget.CardView>

字符串
我只需要前两个康纳,所以我设置的卡比viewpager长一点。

相关问题