我正在开发一个简单的Android应用程序作为自学项目。我有很多功能,而且我有一个主"{first}+{second}+{third}".format_map(names)
,其内部有Activity
和一些FrameLayout
和RecyclerView
内容。
但是,我想在FloatingActionButton
中使用NavigationDrawer
在我的Fragments
中使用RecyclerView
打开一个不同的视图。有没有办法做到这一点,为RecyclerView
和其他东西创建一个新的片段并将FloatingActionButton
和NavigationDrawer
放在那里?
我尝试过这样的事情(点击相应的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" />
但这导致我的应用程序崩溃。有什么指针吗?
答案 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)。您无法使用此指针将其指向应用程序中的另一个Fragment
或Activity
,而不会出现任何问题。 (好吧,也许你可以,但它完全反对Android编程的最佳实践)。