关闭Android应用程序中片段的FrameLayout

时间:2015-07-14 12:01:04

标签: android android-fragments android-activity

我正在开发一个简单的Android应用程序作为自学项目。我有很多功能,而且我有一个主"{first}+{second}+{third}".format_map(names) ,其内部有Activity和一些FrameLayoutRecyclerView内容。

但是,我想在FloatingActionButton中使用NavigationDrawer在我的Fragments中使用RecyclerView打开一个不同的视图。有没有办法做到这一点,为RecyclerView和其他东西创建一个新的片段并将FloatingActionButtonNavigationDrawer放在那里?

我尝试过这样的事情(点击相应的statsFragment = new StatsFragment(); FragmentTransaction transaction = getSupportFragmentManager().beginTransaction(); transaction.replace(R.id.rootLayout, statsFragment); transaction.addToBackStack(null); transaction.commit(); 按钮时):

 <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

 <meta-data
            android:name="com.google.android.gms.version"
            android:value="@integer/google_play_services_version" />

但这导致我的应用程序崩溃。有什么指针吗?

1 个答案:

答案 0 :(得分:0)

您的 R.id.rootLayout Layout还是Fragment组件?

如果您的主Activity有一个硬编码Fragment(通过硬编码,我的意思是在您的XML中声明),然后,则您无法更改带有FragmentTransaction的硬编码片段内容。 有关this question's answer的更多信息。

最后,您无法将Activity内的组件放入新Fragment / Activity内,因为每个组件都属于一个,而< strong>只有一个 Context。 请参阅Activity扩展Context。当您使用Activity.findViewById(int)获得对XML中声明的组件的引用时,您实际上是在指向View布局中确定的Activity的指针。您的onCreate方法setContentView(id)。您无法使用此指针将其指向应用程序中的另一个FragmentActivity,而不会出现任何问题。 (好吧,也许你可以,但它完全反对Android编程的最佳实践)。