1

我已经完成了 MenuSlider,但我只想在单击 actionBar 主页按钮时滑动,我不知道如何解决这个问题,因为我必须添加 4 个选项卡,然后导航到它们似乎很困难

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


    Drawable d=getResources().getDrawable(R.drawable.action_bar);  

    actionBar = getActionBar();
    actionBar.setDisplayHomeAsUpEnabled(true);
    //actionBar.setTitle("Action Bar");
    actionBar.setLogo(R.drawable.transparent);
    //actionBar.setSubtitle("http://www.android.com");
    actionBar.addOnMenuVisibilityListener(this);
    actionBar.setBackgroundDrawable(d);


    actionBar.setDisplayShowTitleEnabled(false);
    actionBar.setDisplayUseLogoEnabled(true);
    getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);
    getActionBar().setHomeButtonEnabled(true);
    getOverflowMenu();

    setBehindContentView(R.layout.left_tab);
    setSlidingActionBarEnabled(true);
    slideMenu = getSlidingMenu();
    slideMenu.setMode(SlidingMenu.LEFT);
    slideMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
    slideMenu.setShadowWidthRes(R.dimen.slidingmenu_offset);
    //slideMenu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT);
    slideMenu.setBehindOffset(80);
    slideMenu.setFadeDegree(0.99f);

    inflater = getLayoutInflater();
    //item = inflater.inflate(R.layout.left_tab, null);}
}
4

1 回答 1

1

尝试改变

slideMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);

slideMenu.setTouchModeAbove(SlidingMenu.ABOVE); 

touchModeAbove - 一个枚举,指定显示上述视图时屏幕的哪个部分是可触摸的。边距仅表示左边距。全屏是指整个屏幕。默认为边距。


简单示例

public class SlidingExample extends Activity {

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setTitle(R.string.attach);
    // set the content view
    setContentView(R.layout.content);
    // configure the SlidingMenu
    SlidingMenu menu = new SlidingMenu(this);
    menu.setMode(SlidingMenu.LEFT);
    menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
    menu.setShadowWidthRes(R.dimen.shadow_width);
    menu.setShadowDrawable(R.drawable.shadow);
    menu.setBehindOffsetRes(R.dimen.slidingmenu_offset);
    menu.setFadeDegree(0.35f);
    menu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT);
    menu.setMenu(R.layout.menu);
}

}

XML 使用

如果您决定使用 SlidingMenu 作为视图,您可以在 xml 布局中定义它,如下所示:

<com.jeremyfeinstein.slidingmenu.lib.SlidingMenu
    xmlns:sliding="http://schemas.android.com/apk/res-auto"
    android:id="@+id/slidingmenulayout"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    sliding:viewAbove="@layout/YOUR_ABOVE_VIEW"
    sliding:viewBehind="@layout/YOUR_BEHIND_BEHIND"
    sliding:touchModeAbove="margin|fullscreen"
    sliding:behindOffset="@dimen/YOUR_OFFSET"
    sliding:behindWidth="@dimen/YOUR_WIDTH"
    sliding:behindScrollScale="@dimen/YOUR_SCALE"
    sliding:shadowDrawable="@drawable/YOUR_SHADOW"
    sliding:shadowWidth="@dimen/YOUR_SHADOW_WIDTH"
    sliding:fadeEnabled="true|false"
    sliding:fadeDegree="float"
    sliding:selectorEnabled="true|false"
    sliding:selectorDrawable="@drawable/YOUR_SELECTOR"/>

此类在 API 级别 17 中已弃用。不再支持此类。如果您必须在应用程序中使用它,建议您将自己的实现基于 Android 开源项目的源代码。

输出:

在此处输入图像描述

于 2016-12-10T08:18:56.013 回答