【发布时间】:2021-03-03 09:39:09
【问题描述】:
实际上,在我的应用程序中,我有一个包含第一个片段的活动,然后从该片段中我能够按一些按钮导航到另一个片段,现在我将更改活动并添加一个 tablayout 从中我将能够在我拥有的三个片段之间导航,但是通过阅读文档,我无法理解如何使用 ViewPager2 通过单击选项卡在其中显示我的片段。
我的活动布局现在看起来像这样:
<androidx.coordinatorlayout.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"
tools:context=".LetturaActivity">
<com.google.android.material.appbar.AppBarLayout
android:layout_width="match_parent"
app:elevation="0dp"
android:layout_height="wrap_content"
android:theme="@style/Theme.VisualStock.AppBarOverlay">
<androidx.appcompat.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:popupTheme="@style/Theme.VisualStock.PopupOverlay" />
<com.google.android.material.tabs.TabLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:elevation="8dp"
app:tabSelectedTextColor="#ffffff"
app:tabBackground="@drawable/tab_selector"
app:tabIndicatorGravity="top"
app:tabIndicatorColor="#ffffff"
app:tabMode="fixed">
<com.google.android.material.tabs.TabItem
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/riepilogo"
/>
<com.google.android.material.tabs.TabItem
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/testata"
/>
<com.google.android.material.tabs.TabItem
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/corpo"
/>
</com.google.android.material.tabs.TabLayout>
</com.google.android.material.appbar.AppBarLayout>
<androidx.viewpager2.widget.ViewPager2
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/floatingActionButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="16dp"
android:clickable="true"
android:contentDescription="@string/menu_per_lo_scarico_nuovo_documento_o_riepilogo_articoli"
android:focusable="true"
app:fabSize="normal"
app:layout_anchor="@+id/pager"
app:layout_anchorGravity="end|bottom"
app:srcCompat="@drawable/ic_add"
app:tint="@android:color/white" />
</androidx.coordinatorlayout.widget.CoordinatorLayout>
然后我有三个像这样的片段文件:
class LetturaFragment : Fragment() {
...
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
// Inflate the layout for this fragment
return inflater.inflate(R.layout.fragment_lettura, container, false)
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
...
}
}
class ArticoliFragment : Fragment() {
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
return inflater.inflate(R.layout.fragment_articoli, container, false)
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
...
}
}
和活动
class LetturaActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_lettura)
}
如何使用我的片段在选项卡中导航并在 ViewPager2 中显示它们?
【问题讨论】:
-
嗨,Kasper Juner 先生,如果我的回答是正确的,请将其标记为有用
标签: android kotlin android-fragments android-viewpager2