如何让Fragment在Android中默认打开?如何对被点击的按钮进行签名?

问题描述 投票:0回答:3

我正在制作足球应用程序,它在屏幕顶部有 4 个按钮。每个按钮都会打开不同的片段。现在,当我默认打开应用程序时,它显示 4 个按钮和它们下面的空白字段,其中将显示片段的内容。我应该怎么做才能默认打开其中一个片段(作为 MainActivity 但它应该保留片段)?此外,我如何签署(注释、标记)所选按钮以便用户看到现在选择了哪个按钮? 谢谢,如果有不清楚的地方请告诉我,我会进一步解释

android button android-studio fragment main-activity
3个回答
1
投票

您可以使用 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();

0
投票

您可以阅读以下内容:https://developer.android.com/training/basics/fragments/index.html您还有一个示例。

但基本上我看到了 3 个选择。

  1. 就像 fractalwrench 的答案一样,通过 xml 布局文件添加片段。

  2. 也像 fractalwrench 的答案一样,通过在容器视图中替换片段来动态添加片段,就像 xml 布局文件中的 FrameLayout 一样。

  3. 您说您有 4 个按钮用于 4 个不同的片段。然后我会使用 viewpager 在片段之间切换。您可以在此处找到示例:https://github.com/codepath/android_guides/wiki/ViewPager-with-FragmentPagerAdapter

无论如何,选项 2 可能也适合您。 :)


0
投票

在 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();
        }
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.