我也在使用带有搜索栏的操作栏,我需要像Back按钮一样使用ActionBar ico:

但我也在使用导航抽屉......如何解除/隐藏/禁用导航抽屉菜单以使用后退按钮?
我的ActionBar代码:
@Override
public boolean onCreateOptionsMenu(Menu menu){
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.main, menu);
this.getSupportActionBar().setDisplayShowCustomEnabled(true);
this.getSupportActionBar().setDisplayShowTitleEnabled(false);
this.getSupportActionBar().setDisplayHomeAsUpEnabled(true);
this.getSupportActionBar().setHomeButtonEnabled(true);
LayoutInflater inflator = (LayoutInflater) this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View v;
if(!searchView){
v = inflator.inflate(R.layout.action_textview, null);
((TextView) v.findViewById(R.id.titleText)).setText(actionTitle);
menu.getItem(0).setVisible(true);
menu.getItem(2).setVisible(true);
mainMenu = menu;
}else{
v = inflator.inflate(R.layout.action_searchview, null);
actionSearch = (EditText) v.findViewById(R.id.searchText);
actionSearch.setOnEditorActionListener(new OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView view, int actionId, KeyEvent event) {
int result = actionId & EditorInfo.IME_MASK_ACTION;
switch(result) {
case EditorInfo.IME_ACTION_DONE:
case EditorInfo.IME_ACTION_NEXT:
case EditorInfo.IME_ACTION_GO:
case 0:
((InputMethodManager)getSystemService(INPUT_METHOD_SERVICE)).hideSoftInputFromWindow(actionSearch.getWindowToken(), 0);
String temp …Run Code Online (Sandbox Code Playgroud) 嗨,我正在使用股票导航抽屉v4,我问如何在导航抽屉打开时删除该背景阴影.
这是我的NavigationDrawerFragment.java代码
public void setUp(int fragmentId, DrawerLayout drawerLayout) {
mFragmentContainerView = getActivity().findViewById(fragmentId);
mDrawerLayout = drawerLayout;
// set a custom shadow that overlays the main content when the drawer opens
mDrawerLayout.setDrawerShadow(R.drawable.trasparent, GravityCompat.START);
// set up the drawer's list view with items and click listener
ActionBar actionBar = getActionBar();
actionBar.setDisplayHomeAsUpEnabled(true);
actionBar.setHomeButtonEnabled(true);
Run Code Online (Sandbox Code Playgroud)
这是MainActivity.xml
<android.support.v4.widget.DrawerLayout
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<!-- Main layout -->
<FrameLayout
android:id="@+id/main_fragment_container"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<ImageView
android:id="@+id/ImageView3_Left"
android:layout_width="match_parent"
android:layout_height="match_parent"
/>
<!-- The navigation drawer -->
<ListView android:id="@+id/left_drawer"
android:layout_width="240dp"
android:layout_height="match_parent"
android:layout_gravity="start"
android:choiceMode="singleChoice" …Run Code Online (Sandbox Code Playgroud) 我正在使用此问题中的方法来更改颤振中 Scaffold 的主体:
Flutter Drawer Widget - 更改 Scaffold.body 内容
所描述的方法非常有效。现在我只想在用户点击其中一个项目后自动关闭抽屉。
我尝试使用 Navigator.pop() 方法,但它会弹出整个屏幕,而不仅仅是抽屉。它让我看到一个全黑的屏幕。
有什么建议?
将此代码放入 pubspec.yaml 中
flutter_svg: ^0.19.3
Run Code Online (Sandbox Code Playgroud)
即使我投入了这些资产
assets:
- assets\icons\logo.jpg
- assets\icons\menuicon.svg
- assets\icons\searchIcon.svg
Run Code Online (Sandbox Code Playgroud)
在代码中它看起来像这样
IconButton(
icon: Icon(Icons.searchicon.svg),
onPressed: () {},
Run Code Online (Sandbox Code Playgroud) 我开发了一个通用应用程序(适用于iPhone和iPad).以下是app的要求.
需求
1.应该有一个菜单(左边是主人)和细节(右边).
2.对于iPhone菜单或masterViewController应该在抽屉或滑出菜单上.

3.对于iPad菜单应该在splitView的rootViewController上.

我已经尝试过了
我试图实现它使用spiltViewController,适用于iPad它工作正常(MasterViewController在屏幕左侧的即将到来,DetailViewController在屏幕的右侧),但iPhone这只不过是工作的UINavigationController(MasterViewController控制器rootViewController的UINavigationController).
我应该用什么方法来实现它?
在developer.android.com上做了一些阅读后,我正在认真考虑从我的应用程序中删除菜单抽屉导航.
然而,在我这样做之前,我想听听您的意见:为什么在android.widget.SlidingDrawerAPI 17中被弃用?
编辑:
这是一个有效的问题.为何android.widget.SlidingDrawer被弃用?还有什么可以用来代替滑动抽屉来达到同样的效果?
我的应用包含一个表单,如下图所示:

当我单击菜单选项按钮时,抽屉将打开,如下图所示:

我希望在按下按钮选择位置时打开抽屉.
我的代码是
RegisterBlood.java
...
public class RegisterBlood extends Activity implements OnItemClickListener {
DrawerLayout dLayout, dLayout2;
ListView dList, dList2;
ArrayAdapter<String> adapter, adapter2;
String[] state_data2;
String city = "", state = "";
Button location;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.selectlocation);
Bundle args = new Bundle();
Fragment detail = new RegisterBloodFragment();
detail.setArguments(args);
FragmentManager fragmentManager = getFragmentManager();
fragmentManager.beginTransaction().replace(R.id.content_frame, detail)
.commit();
...
dLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
dList = (ListView) findViewById(R.id.left_drawer);
adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, state_data);
dList.setAdapter(adapter);
dList.setSelector(android.R.color.holo_blue_dark);
// …Run Code Online (Sandbox Code Playgroud) 我试图隐藏我状态栏的一半.具体来说,我正在使用REFrostedViewController作为我的侧抽屉,当它出来时,我希望它能够超越状态,例如在这张图片中(应用程序是谷歌的收件箱).

UIViewController的当前层次结构如下:
- REFrostedViewController
|--MenuViewController
|--NavigationControler
|--ContentViewController
Run Code Online (Sandbox Code Playgroud)
我已经UIViewControllerBasedStatusBarAppearance开始了YES.在我的抽屉菜单(MenuViewController)中我有方法
- (BOOL)prefersStatusBarHidden
{
return YES;
}
Run Code Online (Sandbox Code Playgroud)
在我的导航控制器中,我有:
- (UIViewController *)childViewControllerForStatusBarHidden {
return self.frostedViewController.menuViewController;
}
Run Code Online (Sandbox Code Playgroud)
这会在所有屏幕中隐藏状态栏.当我做
- (UIViewController *)childViewControllerForStatusBarHidden {
if (self.isDrawerOpen)
{
return self.frostedViewController.menuViewController;
} else {
return self.frostedViewController.contentViewController;
}
}
Run Code Online (Sandbox Code Playgroud)
它崩溃了.self.frostedViewController.contentViewController拥有一个navigationController(也有prefersStatusBarHidden实现的方法)
我的应用程序有很多路由,几乎每条路由都使用 Scaffold 和相同的 Drawer 菜单在应用程序内导航(我自己的 CustomDrawer 小部件)。对于大屏幕的设备,我想总是在布局的左侧显示菜单,而不是使用 Drawer(它在 Gmail 应用程序中是这样工作的。我附上了一张图片)。换句话说,我需要使用固定菜单制作响应式布局。
我试过的:
在 React 中,应用程序布局看起来像这样:
<App>
<Menu />
<main className="content">
<Switch>
<Route path="/about" component={About} />
<Route path="/contact" component={Contact} />
<Route path="/" component={Home} />
</Switch>
</main>
</App>
Run Code Online (Sandbox Code Playgroud)
但我不知道如何在 Flutter 中制作这样的东西。
tl; dr:为了使 UI 响应大屏幕,我想显示固定菜单而不是抽屉。整个应用程序的一个菜单,而不是每条路线。
我的 React 应用程序中有一个 Navbar 组件,当屏幕较小时,它会显示一个 Sidebar 组件。我使用抽屉的 Material UI 来显示侧边栏。我的问题是,单击汉堡图标后,抽屉可以正常打开。但是,当单击链接甚至侧边栏之外时,它不会关闭。
怎么解决这个问题呢?我究竟做错了什么?这是我的代码。
导航栏.js
import React, { useContext, useEffect, useState } from "react";
import "./navbar.css";
import Sidebar from "./Sidebar";
import { NavLink } from "react-router-dom";
import { Drawer } from "@mui/material";
import IconButton from "@mui/material/IconButton";
import MenuIcon from "@mui/icons-material/Menu";
const Navbar = () => {
const [drwOpen, setDrwOpen] = useState(false);
const handleOpen = () => {
setDrwOpen(true);
};
const handleClose = () => {
setDrwOpen(false);
};
return (
<header>
<nav>
<div className="left"> …Run Code Online (Sandbox Code Playgroud)