徽标旁边的小图标(指示符或3行)不会变为较小的图标.
- >此图像不是动画,当我点击应用程序的徽标时,抽屉被打开但图像没有动画成更小的图像,这是抽屉当前打开的指示.
gABar.get().setDisplayHomeAsUpEnabled(true);
Run Code Online (Sandbox Code Playgroud)
mDrawerToggle = new ActionBarDrawerToggle(
getActivity(), /* host Activity */
mDrawerLayout.get(), /* DrawerLayout object */
R.drawable.ic_drawer2, /* nav drawer image to replace 'Up' caret */
R.string.drawer_open, /* "open drawer" description for accessibility */
R.string.drawer_close /* "close drawer" description for accessibility */
) {
@Override
public void onDrawerClosed(View view) {
getActivity().getActionBar().setTitle(mTitle);
getActivity().invalidateOptionsMenu(); // creates call to onPrepareOptionsMenu()
Log.d("onDrawerClosed", "inside");
}
@Override
public void onDrawerOpened(View drawerView) {
getActivity().getActionBar().setTitle(mDrawerTitle);
getActivity().invalidateOptionsMenu(); // creates call to onPrepareOptionsMenu()
}
};
Run Code Online (Sandbox Code Playgroud)
@Override
public boolean …Run Code Online (Sandbox Code Playgroud) java android actionbarsherlock navigation-drawer drawerlayout
这是我的xml:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".Main"
android:background="@android:color/black" >
<RelativeLayout
android:id="@+id/layout"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<ImageButton
android:id="@+id/calendar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignTop="@+id/about"
android:layout_centerHorizontal="true"
android:background="@drawable/calendar" />
<ImageButton
android:id="@+id/okan"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignTop="@+id/calendar"
android:layout_marginLeft="20dp"
android:layout_toRightOf="@+id/calendar"
android:background="@drawable/okanliyiz"/>
<ImageButton
android:id="@+id/about"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="20dp"
android:layout_marginTop="140dp"
android:layout_toLeftOf="@+id/calendar"
android:background="@drawable/info" />
</RelativeLayout>
<android.support.v4.widget.DrawerLayout
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clickable="false" >
<FrameLayout
android:id="@+id/content_frame"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clickable="false" />
<ListView
android:id="@+id/left_drawer"
android:layout_width="240dp"
android:layout_height="match_parent"
android:layout_gravity="start"
android:choiceMode="singleChoice"
android:divider="@android:color/transparent"
android:dividerHeight="0dp"
android:background="#111"/>
</android.support.v4.widget.DrawerLayout>
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)
我写了它的程序化部分和Drawer工作就好了,只是我不能点击它背后的ImageButtons .如果我把按钮放在前面我可以点击它们,但是抽屉被留下了,这是一个可怕的景象.这是什么解决方案?我怎样才能点击抽屉后面的按钮并看到前面的抽屉?
提前致谢.
android imagebutton android-layout navigation-drawer drawerlayout
我有一个普通的NavigationDrawer与不同的片段:
问题 :
NewsFragment包含SwipeRefreshLayout.它第一次刷新时效果很好.
我可以将片段更改为其他东西1和2以及设置.所以我回到NewsFragment.
现在,当我刷新时,片段会冻结.
drawerLayout正常工作(打开/关闭,甚至ActionBar标题更改),但主片段保留在NewsFragment,我无法滚动.但scollListner工作(我有日志),但视图不会改变.
没有refreshView(swipeRefreshLayout的顶部),没有滚动,没有响应按钮(在焦点上,onclick)但只是在视觉上.
实际上,它就像一个响应片段在冷冻片段后面.
我在ADBLog中也有这个错误:
SwipeRefreshLayout? Got ACTION_MOVE event but don't have an active pointer id.
Run Code Online (Sandbox Code Playgroud)
任何的想法 ??
如果你问,我可以发布代码.
android android-fragments navigation-drawer drawerlayout swiperefreshlayout
我正在使用最新的设计支持库.我已经设置了导航视图,其中包含四个片段作为菜单项.
我想在用户启动应用程序时打开我的第一个片段(即导航抽屉中的第一个项目).
默认情况下,它会显示MainActivity布局.
我试过了
navigationView.getMenu().getInt(0).setChecked(true);
Run Code Online (Sandbox Code Playgroud)
但上面的代码没有做任何事情.
这是我NavigationView的布局
<android.support.design.widget.NavigationView
android:id="@+id/nav_view"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="start"
app:headerLayout="@layout/header"
app:menu="@menu/meny" />
Run Code Online (Sandbox Code Playgroud)
headerLayout有一个水平RecyclerView,有一些用户可以滚动它的项目.
我的问题是每当我想要滚动RecyclerView,drawerLayout即将关闭.
有没有什么办法来支持水平RecyclerView上Drawerlayout?
如何从DrawerLayoutAndroid Studio 中的a中删除高程(投影)?我到处寻找,并尝试将app:elevation="0dp"和添加android:elevation="0dp"到我的DrawerLayoutxml 中,但它不起作用。
我什至尝试添加setElevation(0f)到我的MainActivity,但这也不起作用。
我究竟做错了什么?谢谢。
(PS 项目的基本 API 是 16...我尝试将其更改为 21,但这没有任何区别。)
这是我的 onCreate:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Snackbar.make(view, "MUHAHA BURP BARF BARF WHAHAHA", Snackbar.LENGTH_LONG)
.setAction("Action", null).show();
}
});
DrawerLayout drawer = (DrawerLayout) findViewById(drawer_layout);
ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close); …Run Code Online (Sandbox Code Playgroud) 我需要使用这两个元素,这就是我目前所拥有的:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.v4.widget.DrawerLayout xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
tools:openDrawer="start">
<android.support.design.widget.NavigationView
android:id="@+id/nav_view"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="start"
android:fitsSystemWindows="true"
app:headerLayout="@layout/nav_header_main"
app:menu="@menu/activity_main_drawer" />
</android.support.v4.widget.DrawerLayout>
<android.support.design.widget.BottomNavigationView
android:id="@+id/bottom_navigation_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:background="@color/colorAccent"
app:menu="@menu/menu_bottom" />
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)
我的问题是BottomNavigationView位于 前面NavigationView,但情况不应该如此(我说的是 y 索引)。我也尝试使用 aCoordinatorLayout代替,但随后卡BottomNavigationView在显示器的顶部。
我想知道如何在抽屉打开时使抽屉背景变暗.我有一个透明的抽屉菜单(listView).当抽屉打开时,例如我在一个菜单下也有一个列表视图,两个列表视图重叠.Android有一个默认的屏幕变暗,但我希望它更暗.
Android使用这种格式: Color.DKGRAY
更新:
public void setScrimColor (int color)
Set a color to use for the scrim that obscures primary content while a drawer is open.
Parameters
color Color to use in 0xAARRGGBB format.
mDrawerLayout.setDrawerShadow(new ColorDrawable(0xff00DDED), GravityCompat.START);
or
mDrawerLayout.setDrawerShadow(R.drawable.drawer_shadow, GravityCompat.START);
Run Code Online (Sandbox Code Playgroud) 我创建了一个具有视差效果的布局,我在片段中使用它.
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
<android.support.design.widget.CollapsingToolbarLayout
android:id="@+id/collapsing_toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:contentScrim="?attr/colorPrimary"
app:layout_scrollFlags="scroll|exitUntilCollapsed">
<ImageView
android:id="@+id/collapsingImageView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:scaleType="fitXY"
android:src="@drawable/baner_1"
app:layout_collapseMode="parallax" />
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
app:layout_collapseMode="pin" />
</android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>
<android.support.v4.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
<!--OTHER SCROLABLE STUFF-->
</android.support.v4.widget.NestedScrollView>
</android.support.design.widget.CoordinatorLayout>
Run Code Online (Sandbox Code Playgroud)
只要片段在Activity的根目录中膨胀(进入container_main),它就可以正常工作.
所以Activity的布局如下所示:
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/container_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
</FrameLayout>
Run Code Online (Sandbox Code Playgroud)
现在我想在我的Activity中添加一个DrawerLayout,这就是我卡住的地方.
我通过添加DrawerLayout更改了Activity的布局.
然后将上面提到的片段膨胀成相同的container_main,但是既没有视差也没有NestedScrollView工作.
<android.support.v4.widget.DrawerLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/drawerLayout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<FrameLayout
android:id="@+id/container_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:android="http://schemas.android.com/apk/res/android">
</FrameLayout>
<ListView
android:id="@+id/drawerListView"
android:layout_width="@dimen/drawer_width"
android:layout_height="match_parent"
/>
</android.support.v4.widget.DrawerLayout>
Run Code Online (Sandbox Code Playgroud)
使用DrawerLayout和使用折叠工具栏的诀窍在哪里?
android android-layout drawerlayout android-toolbar android-collapsingtoolbarlayout
我想NavigationView在应用启动时检查一项。但是我发现NavigationView.setCheckedItem(R.id.xxx)没有工作。我也尝试过navigationView.getMenu().findItem(R.id.xxx).setChecked(true),同样的结果。
我已经将checkableBehavior设置为single。
<item android:title="@string/sliding_menu_group_places">
<menu>
<group android:checkableBehavior="single">
<item
android:id="@+id/xxx"
android:icon="@drawable/xxx"
android:title="@string/xxx" />
<item
android:id="@+id/xxx"
android:icon="@drawable/xxx"
android:title="@string/xxx" />
...
</group>
</menu>
</item>
Run Code Online (Sandbox Code Playgroud)
但是有一种方法可以工作:
drawerLayout.setDrawerListener(new DrawerLayout.DrawerListener() {
@Override
public void onDrawerSlide(View drawerView, float slideOffset) {
}
@Override
public void onDrawerOpened(View drawerView) {
navigationView.setChecked(R.id.xxx);
}
@Override
public void onDrawerClosed(View drawerView) {
}
@Override
public void onDrawerStateChanged(int newState) {
}
});
Run Code Online (Sandbox Code Playgroud)
导航项将在onDrawerOpened回调中进行检查。我在stackoverflow中进行了大量搜索,但没有一种方法适合我。谁能帮我这个忙。
编辑1
<?xml version="1.0" encoding="utf-8"?>
Run Code Online (Sandbox Code Playgroud)
<group android:checkableBehavior="single">
<item
android:id="@+id/xxx"
android:icon="@drawable/xxx"
android:title="@string/recent_display_name" />
<item android:title="@string/sliding_menu_group_places">
<menu>
<group android:checkableBehavior="single"> …Run Code Online (Sandbox Code Playgroud) android ×10
drawerlayout ×10
java ×2
android-collapsingtoolbarlayout ×1
imagebutton ×1
shadow ×1