2

我正在努力实现滑动菜单。

我想在活动时将滑动菜单的宽度设置为屏幕宽度的 2/3。

这是我的 MainActivity

public class MainActivity extends SlidingActivity {

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    getSupportActionBar().setHomeButtonEnabled(true);
    getSupportActionBar().setDisplayHomeAsUpEnabled(true);

    setBehindContentView(R.layout.slidemenu_layout);

    setSlidingActionBarEnabled(false);

    SlidingMenu menu = new SlidingMenu(this);
    menu.setMode(SlidingMenu.LEFT);
    menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_MARGIN);
    menu.setShadowWidthRes(R.dimen.shadow_width);
    menu.setShadowDrawable(R.drawable.shadow);
    menu.setFadeDegree(0.35f);
    menu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT);

    DisplayMetrics displaymetrics = new DisplayMetrics();
    getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);

    menu.setBehindWidth((2*displaymetrics.widthPixels)/3);

}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getSupportMenuInflater().inflate(R.menu.main, menu);
    return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
    case android.R.id.home:
        toggle();
        return true;
    }
    return super.onOptionsItemSelected(item);
}

}

*注意: *我最初让 MainActivity 扩展了 Activity,它在那里工作正常。我不得不搬到 SlidingActivity 来实现 Action Bar Sherlock

编辑:我用 SherlockActivity 替换了 SlidingActivity 并删除了 setBehindContentView(..) 并继续。但不知道为什么第一个不起作用。

4

2 回答 2

3

您是否尝试过使用setBehindWidthRes而不是setBehindOffsetRes

于 2013-09-27T10:41:37.307 回答
0

您可以尝试使用 设置后面的宽度setBehindOffsetRes,并从资源 XML 传递一个 id,就像在这个答案中一样。

于 2013-05-14T18:31:17.753 回答