Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/215.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在片段视图中附加额外的工具栏_Java_Android_Xml_Android Toolbar - Fatal编程技术网

Java 在片段视图中附加额外的工具栏

Java 在片段视图中附加额外的工具栏,java,android,xml,android-toolbar,Java,Android,Xml,Android Toolbar,在仪表板上的我的应用程序中,有一个类似下图的应用程序栏 如图所示,我有一个工具栏,当前显示导航抽屉 从导航抽屉中,我可以导航到一个片段a,它替换了工具栏下的选项卡区域,如下图所示 有没有什么方法可以添加两个这样的工具栏,在其中我可以在一个片段中同时显示导航抽屉图标和后退按钮?只是为了暂时更新,以实现上述目标,我所做的是 我在片段文件中添加了一个布局,在其中我绘制了一个自定义后退按钮,如下所示: <LinearLayout android:layout_width="match_

在仪表板上的我的应用程序中,有一个类似下图的应用程序栏

如图所示,我有一个工具栏,当前显示导航抽屉

从导航抽屉中,我可以导航到一个片段a,它替换了工具栏下的选项卡区域,如下图所示


有没有什么方法可以添加两个这样的工具栏,在其中我可以在一个片段中同时显示导航抽屉图标和后退按钮?

只是为了暂时更新,以实现上述目标,我所做的是

我在片段文件中添加了一个布局,在其中我绘制了一个自定义后退按钮,如下所示:

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@color/colorPrimaryDark20"
    android:orientation="horizontal"
    android:padding="15dp"
    android:weightSum="3">
    <ImageView
        android:id="@+id/backButton"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_gravity="left"
        android:layout_weight="0.2"
        android:src="@drawable/delete_icon" />
</LinearLayout>
上面的代码为我提供了所需的功能

注意,要使上述操作正常工作,您需要确保将您的fragmentTransaction添加到backstack,如下所示

final FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.replace(R.id.home_content_layout,NAME_OFYOUR_FRAGMENT,"nameOfYourFragment");
transaction.addToBackStack(null);
transaction.commit();
没有最好的方法来实现你所追求的,因为这是违反规则的。虽然没有明确说明,但导航抽屉图标和后退按钮图标从未一起显示

这种设计背后的理论是导航应该是直观的和可预测的,显示两个相邻的导航图标有损于直观的用户界面。如果有要返回的内容,则应显示“返回”按钮。不过,持久导航的需要可以通过两种不同的方式来解决。以谷歌的应用程序为例

默认情况下,支持使用屏幕左边缘的滑动作为打开导航抽屉的手势。在Gmail应用程序中,当你在任何一个收件箱中时,导航抽屉图标会显示出来。选择消息后,导航抽屉图标将立即替换为后退按钮。不过,您会注意到,您仍然可以使用前面所述的手势访问抽屉

在更大的屏幕上,Gmail应用程序支持微型导航抽屉。此抽屉可以保持在视图中,而无需显示导航图标。虽然这在当前的支持库中实现起来有点困难,但如果您愿意,可能会有所帮助

最后,为了回答您的问题,没有内置的方式来同时显示后退按钮和导航抽屉图标。如果你需要这样做,唯一的办法就是使用“变通办法”,就像你现在这样


不过,我可能会做的唯一更改是使用一个而不是
ImageView
。然后,您可以使用
style=“?android:attr/actionButtonStyle”
来设置按钮的样式,以模仿
ActionBar
按钮的外观。

您可以随时更新您的问题(单击),这不属于答案。根据您的更新,您似乎找到了一种实现您所问内容的方法。你只是想用不同的方法来实现同样的目标吗?如果是这样,为什么您当前的实现还不够?我确实找到了解决问题的方法,我在想是否有最好的方法来实现上述目标,因为我发布的解决方案更像是一种解决方法。感谢Bryan抽出时间帮助我解决此问题。我现在已将ImageView替换为ImageButton,看起来确实不错。干杯
final FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.replace(R.id.home_content_layout,NAME_OFYOUR_FRAGMENT,"nameOfYourFragment");
transaction.addToBackStack(null);
transaction.commit();