如何在 ViewPager 上显示 tablayout
How to display tablayout over ViewPager
如何在我的 ViewPager 上显示 Tablayout。我尝试了很多事情,但没有成功。请查看其显示方式的屏幕截图:
Screenshot
这是我的代码片段:
<LinearLayout
android:layout_width="match_parent"
android:orientation="vertical"
android:layout_height="wrap_content">
<androidx.viewpager.widget.ViewPager
android:id="@+id/main_header"
android:layout_width="match_parent"
android:layout_height="220dp"
android:clipToPadding="false"
android:overScrollMode="ifContentScrolls">
<com.google.android.material.tabs.TabLayout
android:id="@+id/tab_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:gravity="bottom"
app:tabBackground="@drawable/tab_selector"
app:tabGravity="center"
app:tabIndicatorHeight="0dp"
app:tabMode="fixed"
app:tabPaddingBottom="20dp"
app:tabRippleColor="@color/black" />
</androidx.viewpager.widget.ViewPager>
</LinearLayout>
任何建议都会有很大帮助!!谢谢
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="220dp">
<androidx.viewpager.widget.ViewPager
android:id="@+id/viewPager"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_behavior="@string/appbar_scrolling_view_behavior" />
<com.google.android.material.tabs.TabLayout
android:id="@+id/tabs"
style="@style/MyStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
app:tabGravity="fill"
app:tabMode="fixed" />
</RelativeLayout>
试试这个 xml 并检查你的 xml 你已经在 viewpager
中插入了 tablayout
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="200dp">
<com.google.android.material.tabs.TabLayout
android:id="@+id/tab_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:tabBackground="#DACFCF"
android:layout_marginTop="10dp"
app:tabIndicatorHeight="0dp"
app:tabMode="fixed"
app:tabPaddingBottom="20dp"
app:tabRippleColor="#000" />
<androidx.viewpager.widget.ViewPager
android:id="@+id/main_header"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clipToPadding="false"
android:overScrollMode="ifContentScrolls"/>
</RelativeLayout>
如果您不介意改用 ContraintLayout:
<?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:layout_width="match_parent"
android:layout_height="match_parent">
<com.google.android.material.tabs.TabLayout
android:id="@+id/tab_layout"
android:layout_width="0dp"
android:layout_height="wrap_content"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:tabBackground="@drawable/tab_selector"
app:tabGravity="center"
app:tabIndicatorHeight="0dp"
app:tabMode="fixed"
app:tabPaddingBottom="20dp"
app:tabRippleColor="@color/black" />
<androidx.viewpager.widget.ViewPager
android:id="@+id/main_header"
android:layout_width="0dp"
android:layout_height="220dp"
android:clipToPadding="false"
android:overScrollMode="ifContentScrolls"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tab_layout" />
</androidx.constraintlayout.widget.ConstraintLayout>
如果您想将一个视图放在另一个视图之上,您可以使用 constraintLayout 来非常快速地实现这一点。
举个例子:
<android.support.constraint.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:layout_width="match_parent"
android:layout_height="match_parent">
<Button
android:id="@+id/button2"
android:layout_width="0dp"
android:layout_height="0dp"
android:text="I am view B"
android:background="#1D1DD5"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHeight_percent=".5"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintWidth_percent=".5" />
<Button
android:id="@+id/button3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="View B"
android:background="#ff2222"
app:layout_constraintBottom_toBottomOf="@+id/button2"
app:layout_constraintEnd_toEndOf="@+id/button2"
app:layout_constraintStart_toStartOf="@+id/button2"
app:layout_constraintTop_toBottomOf="@+id/button2" />
</android.support.constraint.ConstraintLayout>
您的布局将如下所示
您可以更改布局的外观,这只是向您展示的示例 ConstraintLayout
- 您可以根据需要随意更改我的示例。
试试这个布局
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:orientation="vertical"
android:layout_height="wrap_content">
<androidx.viewpager.widget.ViewPager
android:id="@+id/main_header"
android:layout_width="match_parent"
android:layout_height="220dp"
android:clipToPadding="false"
android:overScrollMode="ifContentScrolls"/>
<com.google.android.material.tabs.TabLayout
android:id="@+id/tab_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="bottom"
app:tabGravity="center"
app:tabBackground="@drawable/tab_selector"
app:tabIndicatorHeight="0dp"
app:tabMode="fixed"
app:tabPaddingBottom="20dp"
app:tabRippleColor="#000000" /></RelativeLayout>
如何在我的 ViewPager 上显示 Tablayout。我尝试了很多事情,但没有成功。请查看其显示方式的屏幕截图:
Screenshot
这是我的代码片段:
<LinearLayout
android:layout_width="match_parent"
android:orientation="vertical"
android:layout_height="wrap_content">
<androidx.viewpager.widget.ViewPager
android:id="@+id/main_header"
android:layout_width="match_parent"
android:layout_height="220dp"
android:clipToPadding="false"
android:overScrollMode="ifContentScrolls">
<com.google.android.material.tabs.TabLayout
android:id="@+id/tab_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:gravity="bottom"
app:tabBackground="@drawable/tab_selector"
app:tabGravity="center"
app:tabIndicatorHeight="0dp"
app:tabMode="fixed"
app:tabPaddingBottom="20dp"
app:tabRippleColor="@color/black" />
</androidx.viewpager.widget.ViewPager>
</LinearLayout>
任何建议都会有很大帮助!!谢谢
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="220dp">
<androidx.viewpager.widget.ViewPager
android:id="@+id/viewPager"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_behavior="@string/appbar_scrolling_view_behavior" />
<com.google.android.material.tabs.TabLayout
android:id="@+id/tabs"
style="@style/MyStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
app:tabGravity="fill"
app:tabMode="fixed" />
</RelativeLayout>
试试这个 xml 并检查你的 xml 你已经在 viewpager
中插入了 tablayout<RelativeLayout
android:layout_width="match_parent"
android:layout_height="200dp">
<com.google.android.material.tabs.TabLayout
android:id="@+id/tab_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:tabBackground="#DACFCF"
android:layout_marginTop="10dp"
app:tabIndicatorHeight="0dp"
app:tabMode="fixed"
app:tabPaddingBottom="20dp"
app:tabRippleColor="#000" />
<androidx.viewpager.widget.ViewPager
android:id="@+id/main_header"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clipToPadding="false"
android:overScrollMode="ifContentScrolls"/>
</RelativeLayout>
如果您不介意改用 ContraintLayout:
<?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:layout_width="match_parent"
android:layout_height="match_parent">
<com.google.android.material.tabs.TabLayout
android:id="@+id/tab_layout"
android:layout_width="0dp"
android:layout_height="wrap_content"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:tabBackground="@drawable/tab_selector"
app:tabGravity="center"
app:tabIndicatorHeight="0dp"
app:tabMode="fixed"
app:tabPaddingBottom="20dp"
app:tabRippleColor="@color/black" />
<androidx.viewpager.widget.ViewPager
android:id="@+id/main_header"
android:layout_width="0dp"
android:layout_height="220dp"
android:clipToPadding="false"
android:overScrollMode="ifContentScrolls"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tab_layout" />
</androidx.constraintlayout.widget.ConstraintLayout>
如果您想将一个视图放在另一个视图之上,您可以使用 constraintLayout 来非常快速地实现这一点。
举个例子:
<android.support.constraint.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:layout_width="match_parent"
android:layout_height="match_parent">
<Button
android:id="@+id/button2"
android:layout_width="0dp"
android:layout_height="0dp"
android:text="I am view B"
android:background="#1D1DD5"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHeight_percent=".5"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintWidth_percent=".5" />
<Button
android:id="@+id/button3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="View B"
android:background="#ff2222"
app:layout_constraintBottom_toBottomOf="@+id/button2"
app:layout_constraintEnd_toEndOf="@+id/button2"
app:layout_constraintStart_toStartOf="@+id/button2"
app:layout_constraintTop_toBottomOf="@+id/button2" />
</android.support.constraint.ConstraintLayout>
您的布局将如下所示
您可以更改布局的外观,这只是向您展示的示例 ConstraintLayout
- 您可以根据需要随意更改我的示例。
试试这个布局
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:orientation="vertical"
android:layout_height="wrap_content">
<androidx.viewpager.widget.ViewPager
android:id="@+id/main_header"
android:layout_width="match_parent"
android:layout_height="220dp"
android:clipToPadding="false"
android:overScrollMode="ifContentScrolls"/>
<com.google.android.material.tabs.TabLayout
android:id="@+id/tab_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="bottom"
app:tabGravity="center"
app:tabBackground="@drawable/tab_selector"
app:tabIndicatorHeight="0dp"
app:tabMode="fixed"
app:tabPaddingBottom="20dp"
app:tabRippleColor="#000000" /></RelativeLayout>