Android Studio中的Acitvity_Main.xml和Fragment_main.xml文件有什么区别?

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

很可能,它包含了一个片段的布局。我建议阅读生成的Java源代码,以查看此布局文件在哪里被引用。 - CommonsWare
3个回答

15

5

如果您正在创建一个新项目并且默认添加了fragment_main.xml,则必须默认选择布局。也许是一个分页/下拉菜单布局?

Fragment_main与activity_main相同。这些名称只是字符串标签,本身并没有什么意义,它们只是由IDE为了清晰起见而更改。

请阅读此文。

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


1
如果您正在创建一个新项目,并且默认情况下它添加了fragment_main.xml文件,那么您必须默认选择了一个布局。也许是一个分页/下拉菜单布局?不,我并没有默认选择布局,我只是按照创建新项目的基本默认步骤最终得到了这个结果。 - Ojonugwa Jude Ochalifu
1
既然它们是相同的,那我就只和Fragment_main.xml文件一起工作。但是拥有两个文件的意义是什么呢?(这是一个修辞问题 :)) - Ojonugwa Jude Ochalifu
1
如果你的应用程序不同部分有不同的布局,如果您不知道什么是Fragment,请暂时忽略它。您必须了解什么是Fragment才能理解此内容。如果这对你有帮助,请给我们一个赞,谢谢。 :) - bungleofsketches

2

就像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;
    }
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接