侧滑菜单宽度不正确。

3
我将在我的项目中使用jfeinstein1的slidingmenu库。我希望侧滑菜单能够滑动到屏幕宽度的3/4。根据文档,这应该可以通过以下方式实现:
setBehindWidth()
setBehindOffset()

但目前,菜单会滑到最右边并覆盖整个屏幕。以下是我的代码:
public void setupMenu() {
    setContentView(R.layout.activity_base);
    menu = new SlidingMenu(this);
    menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
    menu.setBehindWidth(100);
    menu.setBehindOffset(100);
    menu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT);
    menu.setMenu(R.layout.sliding_menu);
}

提前感谢


文件夹./values/dimens.xml可能包含由@tony提到的初始配置值。 - Robert Rowntree
唉,我真是太蠢了,痛苦不堪。这个方法甚至没有被调用,因为我把调用包裹在一个总是返回 false 的 if() 语句中。所有的建议都起作用了。可惜我只能给你们中的一个点赞。再次感谢您的帮助。 - Marcos Savoury
3个回答

7
我有一个从右侧滑出的菜单,只需调用以下内容:
getSlidingMenu().setMode(SlidingMenu.RIGHT);
getSlidingMenu().setBehindOffset(100);

希望这有所帮助。

但是这个值100会根据屏幕尺寸而变化,对于小屏幕设备来说,看起来真的很丑。我已经尝试过了。有没有办法将宽度设置为相对于总屏幕宽度呢?例如,总屏幕宽度的35%? - Nevaeh

7
错误在于您选择了两种可能性,因此最后一个会胜出。
menu.setBehindWidth(100);
menu.setBehindOffset(100);

....这就是setBehindOffset()导致菜单被移动直到只剩下100像素的原因。使用setBehindWidth(),您将只看到菜单的100个像素。

所以你只需要这一个:

menu.setBehindWidth(100);

干杯!

p.s 来自文档

behindOffset - 表示当后面的视图显示时,您希望上面的视图显示的像素数。默认值为0。

behindWidth - 表示后面视图的宽度的一个尺寸。默认值为屏幕的宽度(等同于 behindOffset = 0)。


5

您不应同时使用宽度和偏移量。宽度是菜单的宽度,偏移量是屏幕非菜单部分的宽度。只能使用其中一个。


目前,如果您同时使用两个,将会收到一个异常。 - joao2fast4u

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接