android抽屉菜单
1. 安卓编程,怎么实现类似知乎左侧抽屉菜单的
这个交互是由两个View组成,左侧导航的View在下面,显示内容列表的View在上面,内容列表的View覆盖住了导航View,拖动内容列表的View向右,这时候导航View就显示出来了。实现步骤:1、自定义一个View,它做为显示内容的View。给这个View添加两个手势,pan拖拽,tap点击;2、当拖拽这个View时,让view.center向右移动,这样就能看到内容View向右移动了;3、定义一个抽屉打开停止时的x值为:OPENCENTERX,这个是内容View最终停止的位置4、当内容View越过中间靠右的一个x值时,view自动向右动画移动到右边位置停下;5、当内容View在打开的状态下,点击内容View,利用UIView动画把内容View.center移动回到中间;6、设置内容View的阴影效果。
2. 安卓编程: The type ActionBarDrawerToggle is deprecated 用V4的包构建抽屉菜单时报错,程序停止运行
划线意思是 该类在这个版本中已经过时了,需要更换jar包,更换jar包是在prop里面的buildpath里添加libaray或者直接在项目的lib里面粘贴就行了。然后把原来的v4包删除掉,完了以后重启Eclipse
就可以了
3. 如何实现两级 DrawerLayout
1主页布局文件:
<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout xmlns:android="hschemas.android.com/apk/res/android"
xmlns:tools="schemas.android.com/tools"
android:id="@+id/main_drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/transparent" >
<RelativeLayout
android:id="@+id/main_content_frame_parent"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/transparent" >
<!-- 下层显示的主要内容 -->
<FrameLayout
android:id="@+id/main_content_frame"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/white"
android:scrollbars="vertical" >
</FrameLayout>
</RelativeLayout>
<!-- 左侧滑动栏 -->
<RelativeLayout
android:id="@+id/main_left_drawer_layout"
android:layout_width="240dp"
android:layout_height="match_parent"
android:layout_gravity="start"
android:background="@android:color/transparent"
android:paddingTop="50dp" >
</RelativeLayout>
<!-- 右侧滑动栏 -->
<RelativeLayout
android:id="@+id/main_right_drawer_layout"
android:layout_width="240dp"
android:layout_height="match_parent"
android:layout_gravity="end"
android:background="@android:color/transparent"
android:paddingTop="50dp" >
</RelativeLayout>
</android.support.v4.widget.DrawerLayout>
如上,使用DrawerLayout需要在布局文件跟目录中引用,v4包中的DrawerLayout标签,并且宽和高,都设置为match_parent.里面framelayout用来现实菜单收起时,下层页面的布局。
而main_left_drawer_layout和main_right_drawer_layout为左右两个抽屉菜单对应的父layout,需要注意的是,在DrawerLayout中,从左侧开始使用android:layout_gravity="start",从右侧开始,使用 android:layout_gravity="end"。
b.主布局代码文件:
package com.demo.drawlayout;
import android.os.Bundle;
import android.support.v4.app.ActionBarDrawerToggle;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.support.v4.widget.DrawerLayout;
import android.view.View;
import android.widget.RelativeLayout;
import android.widget.TextView;
public class MainFrameLayout extends FragmentActivity {
// 抽屉菜单对象
private ActionBarDrawerToggle drawerbar;
public DrawerLayout drawerLayout;
private TestFragment testFragment;
private RelativeLayout left_menu_layout, right_xiaoxi_layout;
private TextView text;
@Override
protected void onCreate(Bundle arg0) {
super.onCreate(arg0);
setContentView(R.layout.main_frame_activity);
initView();
initEvent();
}
public void initView(){
testFragment = new TestFragment();
FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction f_transaction = fragmentManager.beginTransaction();
f_transaction.replace(R.id.main_content_frame_parent, testFragment);
f_transaction.commitAllowingStateLoss();
initLeftLayout();
initRightLayout();
}
public void initLeftLayout(){
drawerLayout = (DrawerLayout) findViewById(R.id.main_drawer_layout);
//设置透明
drawerLayout.setScrimColor(0x00000000);
//左边菜单
left_menu_layout = (RelativeLayout) findViewById(R.id.main_left_drawer_layout);
View view2 = getLayoutInflater().inflate(R.layout.menu_layout, null);
text=(TextView)view2.findViewById(R.id.text);
text.setText("左边测试菜单");
left_menu_layout.addView(view2);
}
public void initRightLayout(){
//左边菜单
right_xiaoxi_layout = (RelativeLayout) findViewById(R.id.main_right_drawer_layout);
View view = getLayoutInflater().inflate(R.layout.xiaoxi_layout, null);
text=(TextView)view.findViewById(R.id.text);
text.setText("右边测试菜单");
right_xiaoxi_layout.addView(view);
}
private void initEvent() {
drawerbar = new ActionBarDrawerToggle(this, drawerLayout, R.drawable.ic_launcher, R.string.open, R.string.close) {
//菜单打开
@Override
public void onDrawerOpened(View drawerView) {
super.onDrawerOpened(drawerView);
}
// 菜单关闭
@Override
public void onDrawerClosed(View drawerView) {
super.onDrawerClosed(drawerView);
}
};
drawerLayout.setDrawerListener(drawerbar);
}
//左边菜单开关事件
public void openLeftLayout() {
if (drawerLayout.isDrawerOpen(left_menu_layout)) {
drawerLayout.closeDrawer(left_menu_layout);
} else {
drawerLayout.openDrawer(left_menu_layout);
}
}
// 右边菜单开关事件
public void openRightLayout() {
if (drawerLayout.isDrawerOpen(right_xiaoxi_layout)) {
drawerLayout.closeDrawer(right_xiaoxi_layout);
} else {
drawerLayout.openDrawer(right_xiaoxi_layout);
}
}
}
4. 安卓(应用)抽屉是什么意思
抽屉就是你按菜单键后进入能看到所有应用程序图标的那个地方
5. Android:SlidingDrawer控件 安卓的抽屉控件
都用RelativeLayout做布局,这样你抽屉想要提到多高就可以根据你设置的坐标来显示了,而不用担心像LinnerLayout那样,高度限制了
6. 如何在android上 listview中的每一个item实现抽屉效果
http://blog.csdn.net/gebitan505/article/details/26684201
http://www.eoeandroid.com/thread-540337-1-1.html
7. Android中实现驾校一点通app的抽屉导航菜单
在APP商城里可以看到
8. android编程Drawerlayout布局中加入activity
一般如此,但也可以不用layout布局,而直接在activity中用java代码进行布局。 另外,一个layout布局,也可以被多个activity使用。
9. android 我用drawerlayout弄了个右滑抽屉
因为滑出的菜单栏 没有处理触发事件 所以才导致下层的ListView捕获监听 一个很简单的解决办法 给整个菜单布局 加一个setOnTouchListener 重写ontouch方法 返回true 就OK了
10. 如何增加安卓手机抽屉页面数
需要改动安卓启动器抽屉里面的图标的话,可以按以下步骤进行:
1,首先下载不同的主题,确保有不同的图标可供替换。