我有setUp tabLayout与ViewPager有5 Fragments.
tabLayout与android:layout_gravity设置为bottom.第三个片段editText在聚焦时,我的标签来自键盘.
主要布局:
<?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"
android:id="@+id/coordinatorLayout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.design.widget.AppBarLayout
android:id="@+id/appBarLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<include
android:id="@+id/t"
layout="@layout/toolbar"/>
</android.support.design.widget.AppBarLayout>
<android.support.v4.view.ViewPager
android:id="@+id/viewPager"
android:layout_width="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
android:layout_height="match_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"/>
<android.support.design.widget.TabLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tab="http://schemas.android.com/tools"
android:layout_gravity="bottom"
app:tabGravity="fill"
android:background="@color/colorPrimary"
android:layout_alignParentBottom="true"
android:id="@+id/tabs"
app:layout_collapseMode="parallax"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
xmlns:android="http://schemas.android.com/apk/res/android">
</android.support.design.widget.TabLayout></android.support.design.widget.CoordinatorLayout>
Run Code Online (Sandbox Code Playgroud)
第三片段布局:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="40dp"
android:hint="Enter something"
/>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud) android android-edittext android-fragments android-viewpager android-tablayout
我正在尝试使用 TabLayout 与 ViewPager 结合来创建三个可滑动的片段。但是,我遇到了一个问题:我希望 TabLayout 位于屏幕底部,但 ViewPager 强制它位于顶部。
TabLayout 曾经位于android.support.design.widget库中。然而,自从 androidx 引入以来,这个库已经发生了变化。新库是com.google.android.material.tabs.TabLayout。
以前的(和过时的)帖子(example1,example2)建议通过简单地创建一个垂直并将和LinearLayout指定为该垂直的两个单独元素来解决上述问题。ViewPagerTabLayoutLinearLayout
上面的解决方案不再可行,因为现在您必须将 指定为(引用TabLayout)内部的元素,如下所示:ViewPager
<androidx.viewpager.widget.ViewPager
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<com.google.android.material.tabs.TabLayout
android:id="@+id/tab_layout"
android:layout_width="match_parent"
android:layout_height="48dp"
>
</com.google.android.material.tabs.TabLayout>
</androidx.viewpager.widget.ViewPager>
Run Code Online (Sandbox Code Playgroud)
然后,为了“合并”ViewPager与TabLayout,setupWithViewPager(ViewPager vp)必须在TabLayout实例上调用该方法:
ViewPager viewPager = (ViewPager) findViewById(R.id.pager);
MainPagerAdapter mpa = new MainPagerAdapter(getSupportFragmentManager(), 3);
viewPager.setAdapter(mpa);
TabLayout tabLayout = (TabLayout) findViewById(R.id.tab_layout);
tabLayout.setupWithViewPager(viewPager);
Run Code Online (Sandbox Code Playgroud)
现在,如何通过 xml 代码或以编程方式巧妙地使 TabLayout 转到 ViewPager …
android android-fragments android-viewpager android-tablayout
在我的应用程序中,我使用底部的操作栏选项卡.我搜索了许多教程,但我不理解解决方案.大多数答案都说要使用TabActivity,但这已被弃用.所以任何人都可以告诉我如何处理这个问题?
我正在尝试在android中使用tabbedActivity来创建一个简单的应用程序.我想把我的标签放在屏幕的底部.
这是我在使用android studio创建Activity时所拥有的.
我想要的是,"第1节第2节第3节"的部分位于屏幕的底部.
这是我的xml文件:
<android.support.design.widget.AppBarLayout
android:id="@+id/appbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="@dimen/appbar_padding_top"
android:theme="@style/AppTheme.AppBarOverlay">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:layout_scrollFlags="scroll|enterAlways"
app:popupTheme="@style/AppTheme.PopupOverlay">
</android.support.v7.widget.Toolbar>
<android.support.design.widget.TabLayout
android:id="@+id/tabs"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</android.support.design.widget.AppBarLayout>
<android.support.v4.view.ViewPager
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior" />
Run Code Online (Sandbox Code Playgroud)
这段代码包含在一个CoordinatorLayout.问题是,如果我TabLayout把它放在viewPager之后,它会从屏幕上删除.
有人有想法吗?
编辑:感谢@Vivek Mishra的回答,它的确有效!谢谢