【问题标题】:What is the difference between Acitvity_Main.xml and Fragment_main.xml files in Android StudioAndroid Studio 中的 Acitvity_Main.xml 和 Fragment_main.xml 文件有什么区别
【发布时间】:2013-11-09 14:05:46
【问题描述】:

每当我创建一个新项目时,Fragment_main.xml 文件都会添加到我的 Layout 文件夹中,与 Eclipse 不同的是,该文件包含通常在 Activity_Main.xml 文件中的内容。为什么 Fragment_main.xml 文件总是添加到我在 Android Studio 中的项目中,它与“常规”Activity_main.xml 文件有何不同?

【问题讨论】:

  • 大概,它包含一个片段的布局。我建议阅读生成的 Java 源代码以查看此布局文件的引用位置。

标签: android android-studio


【解决方案1】:

Activity_main.xml 包含 FragmentActivity 的布局,fragment_main.xml 是片段的布局。

有关片段的更多信息以及如何使用它。
访问:http://developer.android.com/training/basics/fragments/index.html

【讨论】:

    【解决方案2】:

    如果您正在创建一个新项目并且默认添加了 fragment_main.xml,则您必须默认选择一个布局。也许是寻呼机/微调器布局?

    Fragment_main 与 activity_main 相同。这些名称只是字符串标签,本身没有任何意义,只是为了清楚起见被 IDE 更改。

    读一读。

    http://developer.android.com/guide/topics/ui/declaring-layout.html

    【讨论】:

    • 如果您正在创建一个新项目并且默认添加了 fragment_main.xml,您必须默认选择一个布局。也许是寻呼机/微调器布局? 不,我没有默认选择布局,我只是按照创建新项目的基本默认步骤并最终完成。
    • 既然它们是一样的,那我就只使用 Fragment_main.xml 文件。但是两者兼有又有什么意义呢? (这是一个反问:))
    • 如果您对应用程序的不同部分有不同的布局。如果您不知道哪些片段是暂时的,请忽略它。你必须了解 Fragments 是什么才能得到这个。如果这有帮助,请给我们一个赞成票,谢谢。 :)
    【解决方案3】:

    正如 Bytehawks 上面所说的那样。

    activity_main.xml 描述了 FragmentActivity 的布局,fragment_main.xml 是片段的布局。

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main); //get the activity_main.xml for layout
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
    
    
        //code for describing layout more details, get fragment_main.xml
        if (savedInstanceState == null) {
            getSupportFragmentManager().beginTransaction()
                    .add(R.id.container, new PlaceholderFragment())
                    .commit();
        }
    }
     /**
     * A placeholder fragment containing a simple view.
     */
    public static class PlaceholderFragment extends Fragment {
    
        public PlaceholderFragment() {
        }
    
        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container,
                Bundle savedInstanceState) {
            View rootView = inflater.inflate(R.layout.fragment_main, container, false);
            return rootView;
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2014-05-02
      • 2021-07-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-24
      • 2010-10-08
      • 2021-02-23
      相关资源
      最近更新 更多