2

私は使っている :

https://github.com/iPaulPro/SlidingMenu

ActionBarSherlock ライブラリとともに、Facebook のようなスライド メニューを実装するためのライブラリ。

私の場合、BehindContentView は ListFragment です。

1. 画像をクリックして behindView を取得します (toggle(); を呼び出します)。

2. onListItemClicked は、クリックされた項目のテキストを表示する Activity_2 を取得します。

3.このActivity_2で、デバイスの戻るボタンをクリックすると、メインのActivity_1が表示されますが、behindViewが開いています。通常、Facebook や Google+ では、他のアクティビティから Activity_1 に戻ると、 behindView が非表示になります。

4. さらに、Activity_2 では、これらの行を追加した後でも、ホームが機能していないようです (ホーム ボタンをクリックしても何も起こりません)。

    ActionBar bar = this.getSupportActionBar();
    bar.setDisplayHomeAsUpEnabled(true);
    bar.setDisplayOptions(0, ActionBar.DISPLAY_SHOW_TITLE);
    bar.setHomeButtonEnabled(true);

ステップ3と4を解決する方法??

ありがとうございました

4

4 に答える 4

6
SlidingMenu menu;

    @Override
public void onBackPressed() {
    if (menu.isMenuShowing()) {
        menu.showContent(true);
        return;
    }

    super.onBackPressed();
}

ブーム。メニューが表示されていない場合、アクティビティのバックプレスで、それはただ消えます

于 2013-03-31T00:38:14.000 に答える
4

スライド メニューを非表示にするには

onListItemClicked 呼び出し hide() または toggle()

ホームボタンActionBarの場合、動作する必要があります。このように処理してください

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
    case android.R.id.home:
        // you code
        return true;
    }
于 2012-10-09T08:01:06.253 に答える
3

スライドメニューを非表示にし、必要なインテントを開くには、クリックして開きたいインテントを指定する必要があります。これが小さな例です

private SlideMenu slidemenu
// this is from code. no XML declaration necessary, but you won't get state restored after rotation.
slidemenu = new SlideMenu(this, R.menu.slide, this, 333);
// this inflates the menu from XML. open/closed state will be restored after rotation, but you'll have to call init.
slidemenu = (SlideMenu) findViewById(R.id.slideMenu);
slidemenu.init(this, R.menu.IntentName, this, 333);

私はcoboltforge.slidemenu図書館を利用しました。

iPaulPro/SlidingMenuライブラリでも同様だと思います 。

于 2013-01-10T07:09:41.140 に答える
0
@Override 
public boolean onKeyUp(int keyCode, KeyEvent event) {
    if ((keyCode == KeyEvent.KEYCODE_BACK)) {
        getSlidingMenu().toggle(true);
        return false;
    } else {
        return super.onKeyUp(keyCode, event);
    }
}

これをアクティビティに配置するだけです。

于 2013-05-07T12:36:23.187 に答える