标签活动片段到活动

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了标签活动片段到活动相关的知识,希望对你有一定的参考价值。

我是Yusuf,我的英语不好,所以我用翻译写这篇文章。我的问题是:我可以在Android Studio中用Tabbed活动切换到另一个片段或活动吗?

答案

你可以使用TabLayout与ViewPager2设置和FragmentPagerAdapter来绑定片段作为子片段。如果需要,我可以进一步帮助你。

布局

<androidx.coordinatorlayout.widget.CoordinatorLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true">

    <com.google.android.material.appbar.AppBarLayout
        android:id="@+id/appbar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="?attr/colorPrimary"
        android:fitsSystemWindows="true"
        android:theme="@style/AppBarOverlay">

        <com.google.android.material.appbar.CollapsingToolbarLayout
            android:id="@+id/collapsing_toolbar"
            android:layout_width="match_parent"
            android:layout_height="256dp"
            android:fitsSystemWindows="true"
            auto:contentScrim="?attr/colorPrimary"
            auto:layout_scrollFlags="scroll|exitUntilCollapsed|snap"
            auto:titleEnabled="false"
            tools:ignore="NewApi">

            <androidx.appcompat.widget.AppCompatImageView
                android:id="@+id/backdrop"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:fitsSystemWindows="true"
                android:scaleType="centerCrop"
                auto:layout_collapseMode="parallax" />

            <View
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:alpha="0.3"
                android:background="@android:color/black"
                android:fitsSystemWindows="true"
                android:visibility="gone" />

            <com.google.android.material.appbar.MaterialToolbar
                android:id="@+id/toolbar"
                android:layout_width="match_parent"
                android:layout_height="?attr/actionBarSize"
                android:layout_gravity="top"
                android:layout_marginBottom="48dp"
                auto:layout_collapseMode="pin"
                auto:popupTheme="@style/PopupOverlay" />

            <com.google.android.material.tabs.TabLayout
                android:id="@+id/tabs"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_gravity="bottom"
                android:background="?attr/colorPrimary"
                auto:tabGravity="fill"
                auto:tabIndicatorColor="@android:color/white"
                auto:tabMode="scrollable"
                auto:tabSelectedTextColor="@android:color/white"
                auto:tabTextColor="@color/material_white" />

        </com.google.android.material.appbar.CollapsingToolbarLayout>

    </com.google.android.material.appbar.AppBarLayout>

    <androidx.viewpager2.widget.ViewPager2
        android:id="@+id/pager"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        auto:layout_behavior="@string/appbar_scrolling_view_behavior" />

</androidx.coordinatorlayout.widget.CoordinatorLayout>

适配器abstract class BasePagerAdapter(activity: AppCompatActivity) : FragmentStateAdapter(activity) {

protected val items: ArrayList<T>

init {
    items = ArrayList()
}

override fun getItemCount(): Int {
    return items.size
}

fun addItem(item: T) {
    items.add(item)
}

fun getItem(position: Int) : T? = items.get(position)

}

class StationPagerAdapter(activity: AppCompatActivity) : BasePagerAdapter(activity) {。

init {
    addItems()
}

override fun createFragment(position: Int): Fragment {
    return items.get(position)
}

}

活动中的设置

adapter = StationPagerAdapter(this)
        bind.pager.adapter = adapter
        TabLayoutMediator(
            bind.tabs,
            bind.pager,
            TabLayoutMediator.TabConfigurationStrategy { tab, position ->
                tab.text = adapter.getTitle(position)
            }).attach()

以上是关于标签活动片段到活动的主要内容,如果未能解决你的问题,请参考以下文章

OnDetach/onAttach 片段重新创建片段活动

使用选项卡布局从活动中启动选项卡片段

操作栏标签片段中的片段?

如何从我的活动中意图在我的标签栏中分段?

在android中使用底部导航的最佳实践:活动与片段

如何从片段到活动而不会干扰片段的可重用性