【问题标题】:Positioning View Pager below Tablayout under Coordinatorlayout在 Coordinatorlayout 下的 Tablayout 下定位 View Pager
【发布时间】:2019-03-11 01:56:37
【问题描述】:

我在 CoordinatorLayout 中有一个 Appbar、Tablayout 和一个 ViewPager。但是 ViewPager 总是与屏幕中的所有其他视图重叠,除非我指定了除“MatchParent”或“WrapContent”之外的确定高度。我尝试了几件事,但除了根据屏幕尺寸动态设置高度之外,没有什么对我有用。我想知道! xml 本身必须有一些方法可以做到这一点。

<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout
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"
android:orientation="vertical"

>

    <android.support.design.widget.AppBarLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@color/logocolor"
        android:id="@+id/appbar"



        >
        <android.support.v7.widget.Toolbar
            android:id="@+id/toolbar1"
            android:layout_height="match_parent"
            android:layout_width="match_parent"

            app:title="FlashBook"
            app:titleTextColor="@color/whitetish"

            app:layout_scrollFlags="scroll|enterAlways|snap"
            />


    </android.support.design.widget.AppBarLayout>

<android.support.design.widget.TabLayout
    android:id="@+id/tablayout"
    android:layout_width="match_parent"
    android:layout_height="?attr/actionBarSize"
    android:layout_alignParentStart="true"
    android:background="@color/logocolor"
    app:layout_anchor="@id/appbar"
    app:layout_anchorGravity="bottom"
    android:layout_gravity="bottom">

</android.support.design.widget.TabLayout>

<include
    layout="@layout/viewpager_layout"

    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:layout_anchor="@id/tablayout"
    app:layout_anchorGravity="bottom"
    android:layout_gravity="bottom"

    >

</include>


</android.support.design.widget.CoordinatorLayout>

这是我的活动布局和..

<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.view.ViewPager 
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/viewpagermain"
xmlns:tools="http://schemas.android.com/tools"
tools:showIn="@layout/activity_appbartestactvity"
app:layout_behavior="@string/appbar_scrolling_view_behavior">

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

这是 viewpager_layout..

【问题讨论】:

  • 添加app:layout_behavior="" 以在CoordinatorLayout 中包含布局。
  • 试过但没有成功!

标签: java android android-xml android-coordinatorlayout


【解决方案1】:

尝试将ViewPager 直接添加为CoordinatorLayout 子项:

<android.support.v4.view.ViewPager
   android:id="@+id/viewpagermain"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   app:layout_behavior="@string/appbar_scrolling_view_behavior" />

或者如果您需要&lt;include 标签,也可以将此行添加到&lt;include

app:layout_behavior="@string/appbar_scrolling_view_behavior"

另外,最好在AppBarLayout 内和Toolbar 下使用TabLayout

为了可滚动,添加:app:layout_scrollFlags="scroll|enterAlways"

要在折叠后粘在那里,请添加:app:layout_collapseMode="pin"

【讨论】:

  • 将 layout_behavior 添加到 标记在我的情况下无效。但是我通过直接添加视图寻呼机而不使用 以及 layout_behavior 进行了测试。它有些如何将 viewPager 带到 appbar 下方,而不是 tabLayout 下方。我希望它在 TabLayout 下方..
  • 你想要TabLayout 粘在那里还是折叠起来?将其添加到Toolbar 下(作为AppBarLayout 子项)并给它gravity: bottom,然后在折叠后粘在add app:layout_collapseMode="pin" 并要折叠,添加:app:layout_scrollFlags="scroll|enterAlways"
  • 是的,就是这样。在 AppBarLayout 中添加 TabLayout 解决了问题..谢谢老兄!
猜你喜欢
  • 2015-11-14
  • 2018-02-11
  • 2018-02-07
  • 2017-08-29
  • 2019-09-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多