我想你還沒有重寫一些方法... 我在我的項目中也包含了SimonVT的MenuDrawer(這裏是com.example.testapp)。我會張貼我的代碼,它傾向於WindowSample,希望它有幫助。 檢查是否已將庫添加到項目中(在eclipse中:project-> proberties-> android-> add ...在此之前,庫必須位於您的工作區中)首先從示例App中獲取MenuScrollView幷包含它到你的procject來源。
<?xml version="1.0" encoding="utf-8"?>
<com.example.testapp.MenuScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/scrollView"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<LinearLayout
android:id="@+id/sidebar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
</LinearLayout>
然後創建類,例如:然後邊欄這樣創建一個佈局命名NavigationManager:
package com.example.testapp;
import net.simonvt.menudrawer.MenuDrawer;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Context;
import android.os.Build;
import android.os.Bundle;
import android.view.MenuItem;
import android.view.View;
import android.widget.LinearLayout;
import android.widget.TextView;
public class NavigationManager extends Activity implements View.OnClickListener {
private static final String STATE_MENUDRAWER = "de.example.testapp.NavigationManager.menuDrawer";
private static final String STATE_ACTIVE_VIEW_ID = "de.example.testapp.NavigationManager.activeViewId";
private MenuDrawer menuDrawer;
private int activeNavigationItemID;
private Context context;
private Activity activity;
@SuppressLint("NewApi")
public void set(int contentView) {
activity = this;
context = this;
menuDrawer = MenuDrawer.attach(activity, MenuDrawer.MENU_DRAG_WINDOW);
menuDrawer.setContentView(contentView);
menuDrawer.setMenuView(R.layout.sidebar);
// add Items to Sidebar, like you want!!!!
LinearLayout sidebar = (LinearLayout) findViewById(R.id.sidebar);
for (int i = 1; i <= 5; i++) {
TextView tv = new TextView(context);
tv.setText("Item: " + i);
tv.setId(i);
tv.setOnClickListener(this);
sidebar.addView(tv);
}
MenuScrollView msv = (MenuScrollView) menuDrawer.getMenuView();
msv.setOnScrollChangedListener(new MenuScrollView.OnScrollChangedListener() {
@Override
public void onScrollChanged() {
menuDrawer.invalidate();
}
});
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH
&& getActionBar() != null) {
getActionBar().setDisplayHomeAsUpEnabled(true);
}
TextView activeView = (TextView) findViewById(activeNavigationItemID);
if (activeView != null) {
menuDrawer.setActiveView(activeView);
// mContentTextView.setText("Active item: " + activeView.getText());
}
}
@Override
protected void onRestoreInstanceState(Bundle inState) {
super.onRestoreInstanceState(inState);
menuDrawer.restoreState(inState.getParcelable(STATE_MENUDRAWER));
}
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putParcelable(STATE_MENUDRAWER, menuDrawer.saveState());
outState.putInt(STATE_ACTIVE_VIEW_ID, activeNavigationItemID);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
menuDrawer.toggleMenu();
return true;
}
return super.onOptionsItemSelected(item);
}
@Override
public void onBackPressed() {
final int drawerState = menuDrawer.getDrawerState();
if (drawerState == MenuDrawer.STATE_OPEN
|| drawerState == MenuDrawer.STATE_OPENING) {
menuDrawer.closeMenu();
return;
}
super.onBackPressed();
}
@Override
public void onClick(View v) {
// Do something!!!!
menuDrawer.setActiveView(v);
menuDrawer.closeMenu();
activeNavigationItemID = v.getId();
}
}
您必須添加標線在你的項目和邏輯,點擊之後發生了什麼,(標有!!!!)。所有你必須在你的Acitivities現在要做的就是讓他們延長NavigationManager並調用設置方法是這樣的:
package com.example.testapp;
import android.os.Bundle;
public class MainActivity extends NavigationManager {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
set(R.layout.activity_main);
}
}
希望它能幫助:)
來源
2013-03-22 15:03:41
lis
有關於如何在README使用實例。你有什麼樣的問題無法解決? – 2013-02-23 12:00:45
與這些問題是,當我跟着他們,我創建佈局文件,出於某種原因菜單只是不滑動。我的應用程序編譯,但它只停留在主要活動。無論我嘗試打開菜單的方式,它都拒絕打開。創建者(SimonVT)將所有示例放入示例應用程序中。如果您運行示例應用程序,然後查看代碼,則不僅僅是將自己放入自述文件中的三條線放在一起。我只需要導入他的一個庫來添加功能? – ThatGuyThere 2013-02-23 18:55:09
就目前來看,這還不夠信息。可以添加一些代碼和StackTrace/LogCat或直接聯繫作者。 – 2013-02-24 11:11:27