我已经看到了两个在应用程序中实例化新Fragment的一般实践:
Fragment newFragment = new MyFragment();
Run Code Online (Sandbox Code Playgroud)
和
Fragment newFragment = MyFragment.newInstance();
Run Code Online (Sandbox Code Playgroud)
第二个选项使用静态方法newInstance(),通常包含以下方法.
public static Fragment newInstance()
{
MyFragment myFragment = new MyFragment();
return myFragment;
}
Run Code Online (Sandbox Code Playgroud)
起初,我认为主要的好处是我可以重载newInstance()方法以在创建Fragment的新实例时提供灵活性 - 但我也可以通过为Fragment创建重载构造函数来实现这一点.
我错过了什么?
一种方法比另一种方法有什么好处?还是只是好习惯?
我的问题是有关最近发布Navigation View的Design Support Library.

我想Log In在底部定位Navigation View,我该怎么做?我的菜单XML现在看起来像这样:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<group android:checkableBehavior="single">
<item
android:id="@+id/navigation_sub_item_1"
android:icon="@drawable/ic_action_event"
android:title="@string/home" />
<item
android:id="@+id/navigation_sub_item_2"
android:icon="@drawable/ic_action_person"
android:title="@string/profile" />
<item
android:id="@+id/navigation_sub_item_3"
android:icon="@drawable/ic_action_labels"
android:title="@string/tags" />
<item
android:id="@+id/navigation_sub_item_4"
android:icon="@drawable/ic_action_settings"
android:title="@string/log_in" />
</group>
</menu>
Run Code Online (Sandbox Code Playgroud)
这是我的布局:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
android:background="@color/white_1000">
<include
android:id="@+id/toolbar"
layout="@layout/toolbar" />
<android.support.v4.widget.DrawerLayout
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@id/toolbar">
<FrameLayout
android:id="@+id/content_frame"
android:layout_width="fill_parent"
android:layout_height="fill_parent" />
<android.support.design.widget.NavigationView
android:id="@+id/main_drawer"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="start"
app:headerLayout="@layout/drawer_header"
app:menu="@menu/drawer_menu" /> …Run Code Online (Sandbox Code Playgroud) 我创建一个应用程序,我使用NavigationDrawer,并Fragments在我的应用程序,现在的问题是我有五个ListItems在NavigationDrawer这样的.
-首页
-编辑简介
-我的订单
-Signout
-帮助
现在,当用户点击注销时,所有列表项应该隐藏,只有signin应该可见..
以下是我的代码段
public class MainActivity extends FragmentActivity {
private DrawerLayout mDrawerLayout;
private ListView mDrawerList;
private ActionBarDrawerToggle mDrawerToggle;
private String abc;
private Intent ii;
// nav drawer title
private CharSequence mDrawerTitle;
// used to store app title
private CharSequence mTitle;
// slide menu items
private String[] navMenuTitles;
private TypedArray navMenuIcons;
private ArrayList<NavDrawerItem> navDrawerItems;
private NavDrawerListAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ii=getIntent();
mTitle = …Run Code Online (Sandbox Code Playgroud)