【问题标题】:how to stop sliding by dragging the main page to right如何通过向右拖动主页来停止滑动
【发布时间】:2013-10-12 10:35:04
【问题描述】:

我已经完成了 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);}
}

【问题讨论】:

  • 回复太晚了,也许你已经解决了这个问题,但仍然为了新成员,我发布了这个答案。谢谢

标签: android slidingmenu


【解决方案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 开源项目的源代码实现自己的实现。

输出:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-11-07
    • 1970-01-01
    • 2013-12-20
    • 2020-04-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多