我的应用使用ActionBarCompat
和NavigationDrawer
,这引出了人们应该如何构建导航的问题?我看到两个选择:
1)使用一个Activity
并换出Fragments
。
2)使用多个Activities
,并在它们之间进行转换。
后者似乎是正确的方式,但这意味着每个Activity
必须从另一个ActionBar
和NavigationDrawer
获取并构建Activity
和Activity
{1}}。
这将如何影响我的过渡动画?如果在点击导航项时我有从左到右的过渡效果,它是否会转换整个ActionBar
或Fragments
下面的所有内容?
前似乎充满了问题。单个.java类文件可能会变得非常繁重且难以管理。
但是,当我们讨论Activity
的主题时,请考虑这种情况并让我了解正确的片段管理:
只有LinearLayout
的空白Fragment
会在其中附加一个包含Button
的新Fragment
。在onClickListener
类中,此按钮获得Fragment
,当点击该按钮时,另一个同类LinearLayout
应附加到Activity
内的Fragment
1}}。
A)Activity
班级应该与Fragment
通信是否应附加新的public interface
?这可以使用自定义onClickListener
来完成,并且回调正在Fragment
类的Fragment
内执行。
B)或者,如果onClickListener
句柄将新实例附加到Activity
中,是否会使Button
更少工作?只需简单地桥接点击的LinearLayout
并调用.getParent()直到达到{{1}},然后将其附加到那里。
答案 0 :(得分:1)
只有LinearLayout的空白活动会为包含Button的新片段附加一个新片段。在Fragment类中,此按钮获取一个onClickListener,当单击该按钮时,另一个相同类型的Fragment应该附加到Activity内的LinearLayout。
A)Fragment类是否应该与Activity通信应该附加新的片段?这可以使用自定义公共接口完成,并且回调在Fragment类中的onClickListener中执行。
B)或者,如果Fragment处理在onClickListener中附加新实例,是否使Activity更少?通过简单地桥接单击的Button并调用.getParent()直到达到LinearLayout,然后将其附加到那里。
你可以调用FragmentManager并从片段本身进行替换事务。
FragmentManager manager = getFragmentManager();
FragmentTransaction transaction = manager.beginTransaction();
transaction.replace(container_id, newFragment, tag);
transaction.commit();
没有必要与Activity通信,因为Activity有FragmentManager。 http://developer.android.com/guide/components/fragments.html#Transactions
我的应用程序使用ActionBarCompat和NavigationDrawer,这引出了人们应该如何构建导航的问题?我看到两个选择:
1)使用单个活动并交换碎片。
2)使用多个活动,并在它们之间进行转换。
后者似乎是正确的方法,但这意味着每个Activity必须从另一个Activity调用时获取并构建ActionBar和NavigationDrawer。
只要您在每个活动/片段中都有相同的NavigationDrawer,您可以选择哪种方式。
这将如何影响我的过渡动画?如果在单击导航项时我有从左到右的过渡效果,它是否会转换整个活动或ActionBar下面的所有内容?
如果您更改活动,它将转换到整个屏幕,如果您使用Fragment,它将在ActionBar下方转换。如果你交换Fragment,别忘了关掉NavigationDrawer。