我正在制作足球应用程序,它在屏幕顶部有 4 个按钮。每个按钮都会打开不同的片段。现在,当我默认打开应用程序时,它显示 4 个按钮和它们下面的空白字段,其中将显示片段的内容。我应该怎么做才能默认打开其中一个片段(作为 MainActivity 但它应该保留片段)?此外,我如何签署(注释、标记)所选按钮以便用户看到现在选择了哪个按钮? 谢谢,如果有不清楚的地方请告诉我,我会进一步解释
您可以使用 Activity 的布局 XML 静态添加 Fragment:
<fragment android:name="com.example.myapp.myfragment"
android:id="@+id/my_fragment"
android:layout_width="match_parent"
android:layout_height="match_parent" />
或者您可以在活动启动时动态添加它:
Fragment myFragment = new MyFragment();
FragmentTransaction transaction = getFragmentManager().beginTransaction();
transaction.add(R.id.fragment_container, myFragment).commit();
您可以阅读以下内容:https://developer.android.com/training/basics/fragments/index.html您还有一个示例。
但基本上我看到了 3 个选择。
就像 fractalwrench 的答案一样,通过 xml 布局文件添加片段。
也像 fractalwrench 的答案一样,通过在容器视图中替换片段来动态添加片段,就像 xml 布局文件中的 FrameLayout 一样。
您说您有 4 个按钮用于 4 个不同的片段。然后我会使用 viewpager 在片段之间切换。您可以在此处找到示例:https://github.com/codepath/android_guides/wiki/ViewPager-with-FragmentPagerAdapter。
无论如何,选项 2 可能也适合您。 :)
在 Kotlin 中,我使用如下代码从 MainActivity 加载默认片段
class MainActivity : AppCompatActivity() {
private val fragmentManager = supportFragmentManager
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
if (savedInstanceState == null) {
// open default fragment
fragmentManager
.beginTransaction()
.replace(R.id.frameLayout, MyFragment())
.commit();
}
}
}