Android 导航抽屉,特殊区域关闭错误
当我接触到这个区域时,我的力量接近了: 一个人很伤心,这里没有抽屉;我不知道,我必须在哪里创建它。 这是我的日志:Android 导航抽屉,特殊区域关闭错误,android,navigation-drawer,Android,Navigation Drawer,当我接触到这个区域时,我的力量接近了: 一个人很伤心,这里没有抽屉;我不知道,我必须在哪里创建它。 这是我的日志: 08-17 20:18:28.275: E/InputEventReceiver(24620): Exception dispatching input event. 08-17 20:18:28.275: E/MessageQueue-JNI(24620): Exception in MessageQueue callback: handleReceiveCallback 08-
08-17 20:18:28.275: E/InputEventReceiver(24620): Exception dispatching input event.
08-17 20:18:28.275: E/MessageQueue-JNI(24620): Exception in MessageQueue callback: handleReceiveCallback
08-17 20:18:28.285: E/MessageQueue-JNI(24620): java.lang.NullPointerException
08-17 20:18:28.285: E/MessageQueue-JNI(24620): at android.support.v4.widget.DrawerLayout.isContentView(DrawerLayout.java:805)
08-17 20:18:28.285: E/MessageQueue-JNI(24620): at android.support.v4.widget.DrawerLayout.onInterceptTouchEvent(DrawerLayout.java:831)
08-17 20:18:28.285: E/MessageQueue-JNI(24620): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1854)
08-17 20:18:28.285: E/MessageQueue-JNI(24620): at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2211)
08-17 20:18:28.285: E/MessageQueue-JNI(24620): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1912)
08-17 20:18:28.285: E/MessageQueue-JNI(24620): at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2211)
08-17 20:18:28.285: E/MessageQueue-JNI(24620): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1912)
08-17 20:18:28.285: E/MessageQueue-JNI(24620): at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2211)
08-17 20:18:28.285: E/MessageQueue-JNI(24620): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1912)
08-17 20:18:28.285: E/MessageQueue-JNI(24620): at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1966)
08-17 20:18:28.285: E/MessageQueue-JNI(24620): at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1418)
08-17 20:18:28.285: E/MessageQueue-JNI(24620): at android.app.Activity.dispatchTouchEvent(Activity.java:2424)
08-17 20:18:28.285: E/MessageQueue-JNI(24620): at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1914)
08-17 20:18:28.285: E/MessageQueue-JNI(24620): at android.view.View.dispatchPointerEvent(View.java:7564)
08-17 20:18:28.285: E/MessageQueue-JNI(24620): at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:3883)
08-17 20:18:28.285: E/MessageQueue-JNI(24620): at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:3778)
08-17 20:18:28.285: E/MessageQueue-JNI(24620): at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3379)
08-17 20:18:28.285: E/MessageQueue-JNI(24620): at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3429)
08-17 20:18:28.285: E/MessageQueue-JNI(24620): at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3398)
08-17 20:18:28.285: E/MessageQueue-JNI(24620): at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:3483)
08-17 20:18:28.285: E/MessageQueue-JNI(24620): at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3406)
08-17 20:18:28.285: E/MessageQueue-JNI(24620): at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:3540)
08-17 20:18:28.285: E/MessageQueue-JNI(24620): at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3379)
08-17 20:18:28.285: E/MessageQueue-JNI(24620): at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3429)
08-17 20:18:28.285: E/MessageQueue-JNI(24620): at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3398)
08-17 20:18:28.285: E/MessageQueue-JNI(24620): at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3406)
08-17 20:18:28.285: E/MessageQueue-JNI(24620): at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3379)
08-17 20:18:28.285: E/MessageQueue-JNI(24620): at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:5419)
08-17 20:18:28.285: E/MessageQueue-JNI(24620): at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:5399)
08-17 20:18:28.285: E/MessageQueue-JNI(24620): at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:5370)
08-17 20:18:28.285: E/MessageQueue-JNI(24620): at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:5493)
08-17 20:18:28.285: E/MessageQueue-JNI(24620): at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:182)
08-17 20:18:28.285: E/MessageQueue-JNI(24620): at android.os.MessageQueue.nativePollOnce(Native Method)
08-17 20:18:28.285: E/MessageQueue-JNI(24620): at android.os.MessageQueue.next(MessageQueue.java:132)
08-17 20:18:28.285: E/MessageQueue-JNI(24620): at android.os.Looper.loop(Looper.java:124)
08-17 20:18:28.285: E/MessageQueue-JNI(24620): at android.app.ActivityThread.main(ActivityThread.java:5103)
08-17 20:18:28.285: E/MessageQueue-JNI(24620): at java.lang.reflect.Method.invokeNative(Native Method)
08-17 20:18:28.285: E/MessageQueue-JNI(24620): at java.lang.reflect.Method.invoke(Method.java:525)
08-17 20:18:28.285: E/MessageQueue-JNI(24620): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
08-17 20:18:28.285: E/MessageQueue-JNI(24620): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
08-17 20:18:28.285: E/MessageQueue-JNI(24620): at dalvik.system.NativeStart.main(Native Method)
08-17 20:18:28.285: D/AndroidRuntime(24620): Shutting down VM
08-17 20:18:28.285: W/dalvikvm(24620): threadid=1: thread exiting with uncaught exception (group=0x417fd700)
08-17 20:18:28.295: E/AndroidRuntime(24620): FATAL EXCEPTION: main
08-17 20:18:28.295: E/AndroidRuntime(24620): java.lang.NullPointerException
08-17 20:18:28.295: E/AndroidRuntime(24620): at android.support.v4.widget.DrawerLayout.isContentView(DrawerLayout.java:805)
08-17 20:18:28.295: E/AndroidRuntime(24620): at android.support.v4.widget.DrawerLayout.onInterceptTouchEvent(DrawerLayout.java:831)
08-17 20:18:28.295: E/AndroidRuntime(24620): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1854)
08-17 20:18:28.295: E/AndroidRuntime(24620): at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2211)
08-17 20:18:28.295: E/AndroidRuntime(24620): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1912)
08-17 20:18:28.295: E/AndroidRuntime(24620): at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2211)
08-17 20:18:28.295: E/AndroidRuntime(24620): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1912)
08-17 20:18:28.295: E/AndroidRuntime(24620): at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2211)
08-17 20:18:28.295: E/AndroidRuntime(24620): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1912)
08-17 20:18:28.295: E/AndroidRuntime(24620): at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1966)
08-17 20:18:28.295: E/AndroidRuntime(24620): at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1418)
08-17 20:18:28.295: E/AndroidRuntime(24620): at android.app.Activity.dispatchTouchEvent(Activity.java:2424)
08-17 20:18:28.295: E/AndroidRuntime(24620): at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1914)
08-17 20:18:28.295: E/AndroidRuntime(24620): at android.view.View.dispatchPointerEvent(View.java:7564)
08-17 20:18:28.295: E/AndroidRuntime(24620): at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:3883)
08-17 20:18:28.295: E/AndroidRuntime(24620): at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:3778)
08-17 20:18:28.295: E/AndroidRuntime(24620): at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3379)
08-17 20:18:28.295: E/AndroidRuntime(24620): at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3429)
08-17 20:18:28.295: E/AndroidRuntime(24620): at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3398)
08-17 20:18:28.295: E/AndroidRuntime(24620): at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:3483)
08-17 20:18:28.295: E/AndroidRuntime(24620): at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3406)
08-17 20:18:28.295: E/AndroidRuntime(24620): at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:3540)
08-17 20:18:28.295: E/AndroidRuntime(24620): at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3379)
08-17 20:18:28.295: E/AndroidRuntime(24620): at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3429)
08-17 20:18:28.295: E/AndroidRuntime(24620): at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3398)
08-17 20:18:28.295: E/AndroidRuntime(24620): at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3406)
08-17 20:18:28.295: E/AndroidRuntime(24620): at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3379)
08-17 20:18:28.295: E/AndroidRuntime(24620): at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:5419)
08-17 20:18:28.295: E/AndroidRuntime(24620): at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:5399)
08-17 20:18:28.295: E/AndroidRuntime(24620): at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:5370)
08-17 20:18:28.295: E/AndroidRuntime(24620): at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:5493)
08-17 20:18:28.295: E/AndroidRuntime(24620): at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:182)
08-17 20:18:28.295: E/AndroidRuntime(24620): at android.os.MessageQueue.nativePollOnce(Native Method)
08-17 20:18:28.295: E/AndroidRuntime(24620): at android.os.MessageQueue.next(MessageQueue.java:132)
08-17 20:18:28.295: E/AndroidRuntime(24620): at android.os.Looper.loop(Looper.java:124)
08-17 20:18:28.295: E/AndroidRuntime(24620): at android.app.ActivityThread.main(ActivityThread.java:5103)
08-17 20:18:28.295: E/AndroidRuntime(24620): at java.lang.reflect.Method.invokeNative(Native Method)
08-17 20:18:28.295: E/AndroidRuntime(24620): at java.lang.reflect.Method.invoke(Method.java:525)
08-17 20:18:28.295: E/AndroidRuntime(24620): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
08-17 20:18:28.295: E/AndroidRuntime(24620): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
08-17 20:18:28.295: E/AndroidRuntime(24620): at dalvik.system.NativeStart.main(Native Method)
以下是抽屉xml:
这是我的代码:
import com.mdev.learnit.helpprogramms.Calculator;
import com.mdev.learnit.settings.AboutActivity;
import com.mdev.learnit.settings.SettingsActivity;
import android.app.Activity;
import android.content.Intent;
import android.content.res.Configuration;
import android.os.Bundle;
import android.support.v4.app.ActionBarDrawerToggle;
import android.support.v4.view.GravityCompat;
import android.support.v4.widget.DrawerLayout;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
public class StartActivity extends Activity {
private DrawerLayout mDrawerLayout;
private ListView mDrawerList;
private ActionBarDrawerToggle mDrawerToggle;
private CharSequence mDrawerTitle;
private CharSequence mTitle;
private String[] mPlanetTitles;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.drawer_main);
mTitle = mDrawerTitle = getTitle();
mPlanetTitles = getResources().getStringArray(R.array.drawer_names);
mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
mDrawerList = (ListView) findViewById(R.id.left_drawer);
// добавляем тень к открытому Navigation Drawer
mDrawerLayout.setDrawerShadow(R.drawable.drawer_shadow, GravityCompat.START);
// прописываем адаптер к нашему списку
mDrawerList.setAdapter(new ArrayAdapter<String>(this,
R.layout.drawer_text, mPlanetTitles));
mDrawerList.setOnItemClickListener(new DrawerItemClickListener());
// делаем иконку приложения кликабельной
getActionBar().setDisplayHomeAsUpEnabled(true);
getActionBar().setHomeButtonEnabled(true);
// конфигурируем нашу икноку, добавляем текст для открытия/закрытия, добавляем дополнительное изображение, которое будет обозначать открыт ли Navigation Drawer или же он закрыт
mDrawerToggle = new ActionBarDrawerToggle(
this,
mDrawerLayout,
R.drawable.ic_drawer_white,
R.string.drawer_open,
R.string.drawer_close
) {
public void onDrawerClosed(View view) {
getActionBar().setTitle(mTitle);
invalidateOptionsMenu(); // creates call to onPrepareOptionsMenu()
}
public void onDrawerOpened(View drawerView) {
getActionBar().setTitle(mDrawerTitle);
invalidateOptionsMenu(); // creates call to onPrepareOptionsMenu()
}
};
mDrawerLayout.setDrawerListener(mDrawerToggle);
}
private class DrawerItemClickListener implements ListView.OnItemClickListener {
@Override
public void onItemClick(AdapterView parent, View view, int position,long id) {
switch(position) {
case 0:
Intent a = new Intent(StartActivity.this, AlgebraTheoryActivity.class);
startActivity(a);
break;
case 1:
Intent b = new Intent(StartActivity.this, Calculator.class);
startActivity(b);
break;
case 2:
Intent c = new Intent(StartActivity.this, SettingsActivity.class);
startActivity(c);
break;
case 3:
Intent d = new Intent(StartActivity.this, AboutActivity.class);
startActivity(d);
break;
default:
}
}
}
@Override
public void setTitle(CharSequence title) {
mTitle = title;
getActionBar().setTitle(mTitle);
}
@Override
protected void onPostCreate(Bundle savedInstanceState) {
super.onPostCreate(savedInstanceState);
mDrawerToggle.syncState();
}
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
mDrawerToggle.onConfigurationChanged(newConfig);
}
public boolean onOptionsItemSelected(MenuItem item) {
if (mDrawerToggle.onOptionsItemSelected(item)) {
return true;
}
return super.onOptionsItemSelected(item);
}
}
import com.mdev.learnit.helpprogramms.Calculator;
导入com.mdev.learnit.settings.AboutActivity;
导入com.mdev.learnit.settings.settings活动;
导入android.app.Activity;
导入android.content.Intent;
导入android.content.res.Configuration;
导入android.os.Bundle;
导入android.support.v4.app.ActionBarDrawerToggle;
导入android.support.v4.view.GravityCompat;
导入android.support.v4.widget.DrawerLayout;
导入android.view.MenuItem;
导入android.view.view;
导入android.widget.AdapterView;
导入android.widget.ArrayAdapter;
导入android.widget.ListView;
公共类StartActivity扩展活动{
私人抽屉布局mDrawerLayout;
私有列表视图mDrawerList;
私有操作bardrawertoggle mDrawerToggle;
私有字符序列mDrawerTitle;
私有字符序列mTitle;
私有字符串[]mplanettiles;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(右布局,抽屉主视图);
mTitle=mDrawerTitle=getTitle();
mPlanetTitles=getResources().getStringArray(R.array.drawer\u名称);
mDrawerLayout=(抽屉布局)findViewById(R.id.抽屉布局);
mDrawerList=(ListView)findViewById(R.id.left\u抽屉);
//导航抽屉
mDrawerLayout.setDrawerShadow(R.drawable.drawer\u shadow,GravityCompat.START);
// прописываем адаптер к нашему списку
mDrawerList.setAdapter(新阵列适配器,
R.layout.drawer_text,mPlanetTitles);
setOnItemClickListener(新的DrawerItemClickListener());
// делаем иконку приложения кликабельной
getActionBar().setDisplayHomeAsUpEnabled(true);
getActionBar().setHomeButtonEnabled(true);
//导航抽屉
mDrawerToggle=新操作bardrawertoggle(
这
mDrawerLayout,
R.drawable.ic_抽屉_白色,
R.string.drawer\u打开,
R.string.drawer\u关闭
) {
公共无效onDrawerClosed(视图){
getActionBar().setTitle(mTitle);
InvalidateOptions SMenu();//创建对OnPrepareOptions SMenu()的调用
}
打开图纸上的公共空白(视图抽屉视图){
getActionBar().setTitle(mDrawerTitle);
InvalidateOptions SMenu();//创建对OnPrepareOptions SMenu()的调用
}
};
mDrawerLayout.setDrawerListener(mDrawerToggle);
}
私有类DrawerItemClickListener实现ListView.OnItemClickListener{
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
开关(位置){
案例0:
意图a=新意图(StartActivity.this,AlgebraTheoryActivity.class);
星触觉(a);
打破
案例1:
意图b=新意图(StartActivity.this、Calculator.class);
星触觉(b);
打破
案例2:
意图c=新意图(StartActivity.this,SettingsActivity.class);
星触觉(c);
打破
案例3:
意向d=新意向(StartActivity.this,abouttactivity.class);
星触觉(d);
打破
违约:
}
}
}
@凌驾
公共无效设置标题(字符序列标题){
mTitle=标题;
getActionBar().setTitle(mTitle);
}
@凌驾
后期创建时受保护的空(捆绑包savedInstanceState){
super.onPostCreate(savedInstanceState);
mDrawerToggle.syncState();
}
@凌驾
公共无效OnConfiguration已更改(配置newConfig){
super.onConfigurationChanged(newConfig);
mDrawerToggle.onConfigurationChanged(newConfig);
}
公共布尔值onOptionsItemSelected(菜单项项){
如果(MDRAWERTOGLE.onOptionsItemSelected(项目)){
返回true;
}
返回super.onOptionsItemSelected(项目);
}
}
*对不起,俄罗斯的评论
一个人很伤心,这里没有抽屉;我不知道,我必须在哪里创建它
请帮帮我。嗨,我也收到了错误消息,我的问题是xml中缺少android.support.v4.widget.DrawerLayout的内容 ejm:
如果在android.support.v4.widget.DrawerLayout中没有相对性,我就得到了一个错误,但有了它,问题就解决了。
我希望这能帮助您嗨,我也收到了错误消息,我的问题是xml中缺少android.support.v4.widget.DrawerLayout的内容 ejm:
如果在android.support.v4.widget.DrawerLayout中没有相对性,我就得到了一个错误,但有了它,问题就解决了。 我希望这能帮助您根据您的需要创建
android.support.v4.widget.DrawerLayout
作为布局的根目录,有两个子视图:FragmentLayout
和ListView
因为XML顺序意味着z顺序,抽屉必须位于内容的顶部。
如果不需要使用FragmentLayout视图,可以
import com.mdev.learnit.helpprogramms.Calculator;
import com.mdev.learnit.settings.AboutActivity;
import com.mdev.learnit.settings.SettingsActivity;
import android.app.Activity;
import android.content.Intent;
import android.content.res.Configuration;
import android.os.Bundle;
import android.support.v4.app.ActionBarDrawerToggle;
import android.support.v4.view.GravityCompat;
import android.support.v4.widget.DrawerLayout;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
public class StartActivity extends Activity {
private DrawerLayout mDrawerLayout;
private ListView mDrawerList;
private ActionBarDrawerToggle mDrawerToggle;
private CharSequence mDrawerTitle;
private CharSequence mTitle;
private String[] mPlanetTitles;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.drawer_main);
mTitle = mDrawerTitle = getTitle();
mPlanetTitles = getResources().getStringArray(R.array.drawer_names);
mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
mDrawerList = (ListView) findViewById(R.id.left_drawer);
// добавляем тень к открытому Navigation Drawer
mDrawerLayout.setDrawerShadow(R.drawable.drawer_shadow, GravityCompat.START);
// прописываем адаптер к нашему списку
mDrawerList.setAdapter(new ArrayAdapter<String>(this,
R.layout.drawer_text, mPlanetTitles));
mDrawerList.setOnItemClickListener(new DrawerItemClickListener());
// делаем иконку приложения кликабельной
getActionBar().setDisplayHomeAsUpEnabled(true);
getActionBar().setHomeButtonEnabled(true);
// конфигурируем нашу икноку, добавляем текст для открытия/закрытия, добавляем дополнительное изображение, которое будет обозначать открыт ли Navigation Drawer или же он закрыт
mDrawerToggle = new ActionBarDrawerToggle(
this,
mDrawerLayout,
R.drawable.ic_drawer_white,
R.string.drawer_open,
R.string.drawer_close
) {
public void onDrawerClosed(View view) {
getActionBar().setTitle(mTitle);
invalidateOptionsMenu(); // creates call to onPrepareOptionsMenu()
}
public void onDrawerOpened(View drawerView) {
getActionBar().setTitle(mDrawerTitle);
invalidateOptionsMenu(); // creates call to onPrepareOptionsMenu()
}
};
mDrawerLayout.setDrawerListener(mDrawerToggle);
}
private class DrawerItemClickListener implements ListView.OnItemClickListener {
@Override
public void onItemClick(AdapterView parent, View view, int position,long id) {
switch(position) {
case 0:
Intent a = new Intent(StartActivity.this, AlgebraTheoryActivity.class);
startActivity(a);
break;
case 1:
Intent b = new Intent(StartActivity.this, Calculator.class);
startActivity(b);
break;
case 2:
Intent c = new Intent(StartActivity.this, SettingsActivity.class);
startActivity(c);
break;
case 3:
Intent d = new Intent(StartActivity.this, AboutActivity.class);
startActivity(d);
break;
default:
}
}
}
@Override
public void setTitle(CharSequence title) {
mTitle = title;
getActionBar().setTitle(mTitle);
}
@Override
protected void onPostCreate(Bundle savedInstanceState) {
super.onPostCreate(savedInstanceState);
mDrawerToggle.syncState();
}
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
mDrawerToggle.onConfigurationChanged(newConfig);
}
public boolean onOptionsItemSelected(MenuItem item) {
if (mDrawerToggle.onOptionsItemSelected(item)) {
return true;
}
return super.onOptionsItemSelected(item);
}
}
<android.support.v4.widget.DrawerLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="50dp" >
<!-- Contenido principal -->
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent" >
</RelativeLayout>
<!-- Navigation Drawer -->
<ListView
android:id="@+id/drawer"
android:layout_width="240dp"
android:layout_height="match_parent"
android:layout_gravity="left"
android:background="#EEE" />
</android.support.v4.widget.DrawerLayout>
<android.support.v4.widget.DrawerLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<!-- Framelayout to display Fragments -->
<FrameLayout
android:id="@+id/frame_container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:visibility="gone" />
<!-- Listview to display slider menu -->
<ListView
android:id="@+id/list_slidermenu"
android:layout_width="240dp"
android:layout_height="match_parent"
android:layout_gravity="start"
android:choiceMode="singleChoice"
android:divider="@color/list_divider"
android:dividerHeight="1dp"
android:listSelector="@drawable/list_selector"
android:background="@color/list_background"/>
</android.support.v4.widget.DrawerLayout>
<android.support.v4.widget.DrawerLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<RelativeLayout android:layout_width="match_parent"
android:layout_height="match_parent" >
<FrameLayout android:id="@+id/fragment_first"
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
</FrameLayout>
<FrameLayout android:id="@+id/fragment_second"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_belo="@id/fragment_first" >
</FrameLayout>
</RelativeLayout>
<!-- Listview to display slider menu -->
<ListView
android:id="@+id/list_slidermenu"
android:layout_width="240dp"
android:layout_height="match_parent"
android:layout_gravity="start"
android:choiceMode="singleChoice"
android:divider="@color/list_divider"
android:dividerHeight="1dp"
android:listSelector="@drawable/list_selector"
android:background="@color/list_background"/>
</android.support.v4.widget.DrawerLayout>