在slidingmenu奇怪的补偿行为 [英] Strange offset behavior on slidingmenu

查看:194
本文介绍了在slidingmenu奇怪的补偿行为的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

i'm尝试包括SlidingMenu我的应用程序。它结合了3库ActionBarSherlock / ViewPagerIndicator / SlidingMenu。那么问题是,如果i'm滑动,以扩大SlidingMenu它没有偏移的权利。这意味着孔筛将通过菜单来填补。如果i'm pressing切换按钮,它看起来真的很奇怪。看来,他得到了补偿,但看图片上的...如果i'm pressing切换按钮两次,它看起来像它应该-.-

任何想法,我做了什么错了?

这就是我的layout.xml

 <的LinearLayout
机器人:ID =@ + ID / id_Main_output
的xmlns:机器人=htt​​p://schemas.android.com/apk/res/android
的xmlns:程序=htt​​p://schemas.android.com/apk/res-auto
机器人:layout_width =FILL_PARENT
机器人:layout_height =FILL_PARENT
机器人:weightSum =1.0
机器人:方向=垂直>

< com.viewpagerindicator.TitlePageIndicator
    机器人:ID =@ + ID / id_Main_titlepageindicator
    机器人:文字颜色=#FF808080
    应用程序:selectedColor =#FF33B5E5
    应用程序:selectedBold =真
    机器人:layout_height =WRAP_CONTENT
    机器人:layout_width =FILL_PARENT
    />
< android.support.v4.view.ViewPager
    机器人:ID =@ + ID / id_Main_pager
    机器人:layout_width =FILL_PARENT
    机器人:layout_height =0dp
    机器人:layout_weight =1
    />

< / LinearLayout中>
 

这是我的onCreate

  super.onCreate(savedInstanceState);
    的setContentView(R.layout.layout_mensaplanhsulm);
    setBehindContentView(R.layout.layout_settings);

    mPager =(ViewPager)findViewById(R.id.id_Main_pager);
    mIndicator =(TitlePageIndicator)findViewById(R.id.id_Main_titlepageindicator);
    mAdapter =新DayTitleFragmentAdapter(getSupportFragmentManager());
    mPager.setAdapter(mAdapter);
    mPager.setCurrentItem(0);
    mIndicator.setViewPager(mPager);

    SlidingMenu菜单=新SlidingMenu(本);
    menu.setMode(SlidingMenu.LEFT);
    menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_MARGIN);
    menu.setShadowWidthRes(R.dimen.shadow_width);
    menu.setShadowDrawable(R.drawable.shadow);
    menu.setBehindOffsetRes(R.dimen.slidingmenu_offset);
    menu.setAboveOffset(R.dimen.slidingmenu_offset);
    menu.setFadeDegree(0.35f);
    menu.attachToActivity(这一点,SlidingMenu.SLIDING_WINDOW);
    menu.setMenu(R.layout.layout_settings);

    getSupportActionBar()setDisplayHomeAsUpEnabled(真)。
    setSlidingActionBarEnabled(真正的);
 

解决方案

That's我用什么:

  //自定义SlidingMenu
        setBehindContentView(R.layout.menu_frame);
        FragmentTransaction T = this.getSupportFragmentManager()的BeginTransaction()。
        mFrag =新SlidingFragment();
        t.replace(R.id.menu_frame,mFrag);
        t.commit();

                SlidingMenu SM = getSlidingMenu();
                sm.setShadowWidthRes(R.dimen.shadow_width);
                sm.setShadowDrawable(R.drawable.shadow);
                sm.setBehindOffsetRes(R.dimen.slidingmenu_offset);
                sm.setFadeDegree(0.35f);
                setSlidingActionBarEnabled(真正的);

                getSupportActionBar()setDisplayHomeAsUpEnabled(真)。
 

dimen.xml

 <资源>

    <扪名=slidingmenu_offset> 60dp< /扪>
    <扪名=list_padding> 10dp< /扪>
    <扪名=shadow_width> 15dp< /扪>

    &所述;整数名称=NUM_COLS→1&其中; /整数GT;

< /资源>
 

示例:

https://www.4shared.com/rar/zOWrvmyu/ViewpagerandSherlock.html

本样本是完全工作viewpager夏洛克。

只是实现这个code在BaseSampleActivity延伸SlidingFragmentActivity,创建一个简单的SlidingFragment,它会工作。

您需要扩展SlidingMenu类。要同时使用的ActionBar福尔摩斯库则必须按照自述文件中列出的步骤,特别是这一个:

走进你计划使用让他们延长,而不是__Activity Sherlock__Activity的SlidingActivities。

所以,您的项目应该扩展SlidingActivity:

 公共类服务生扩展SlidingActivity {
 

而你需要改变你的SlidingMenu库的副本来使用ABS。打开COM / slidingmenu / lib目录/程序/ SlidingActivity.java和变化:

 公共类SlidingActivity扩展活动实现SlidingActivityBase {
 

 公共类SlidingActivity扩展SherlockActivity实现SlidingActivityBase {
//添加福尔摩斯在这里:^^^^^^^^
 

(重复你希望使用任何其他SlidingMenu活动此步骤。)

i´m trying to include the SlidingMenu to my application. It combines the 3 libraries ActionBarSherlock / ViewPagerIndicator / SlidingMenu. Well the problem is if i´m sliding to the right to expand the SlidingMenu it has no Offset. That means the hole screen will be filled by the menu. If i´m pressing the toggle button it looks really strange. It seems that he got the offset but look on the picture... If i´m pressing the toggle button twice it looks like it should -.-'

Any idea what i have done wrong?

Thats my layout.xml

<LinearLayout 
android:id="@+id/id_Main_output"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:weightSum="1.0"
android:orientation="vertical" >

<com.viewpagerindicator.TitlePageIndicator
    android:id="@+id/id_Main_titlepageindicator"
    android:textColor="#FF808080"
    app:selectedColor="#FF33B5E5"
    app:selectedBold="true"
    android:layout_height="wrap_content"
    android:layout_width="fill_parent"
    />
<android.support.v4.view.ViewPager
    android:id="@+id/id_Main_pager"
    android:layout_width="fill_parent"
    android:layout_height="0dp"
    android:layout_weight="1"
    />

</LinearLayout>

And this is my onCreate

super.onCreate(savedInstanceState);
    setContentView(R.layout.layout_mensaplanhsulm);
    setBehindContentView(R.layout.layout_settings);

    mPager              = (ViewPager)findViewById(R.id.id_Main_pager);
    mIndicator          = (TitlePageIndicator)findViewById(R.id.id_Main_titlepageindicator);
    mAdapter = new DayTitleFragmentAdapter(getSupportFragmentManager());
    mPager.setAdapter(mAdapter);
    mPager.setCurrentItem(0);
    mIndicator.setViewPager(mPager);

    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.setBehindOffsetRes(R.dimen.slidingmenu_offset);
    menu.setAboveOffset(R.dimen.slidingmenu_offset);
    menu.setFadeDegree(0.35f);
    menu.attachToActivity(this, SlidingMenu.SLIDING_WINDOW);
    menu.setMenu(R.layout.layout_settings);

    getSupportActionBar().setDisplayHomeAsUpEnabled(true);
    setSlidingActionBarEnabled(true);

解决方案

That´s what I use:

// customize the SlidingMenu
        setBehindContentView(R.layout.menu_frame);
        FragmentTransaction t = this.getSupportFragmentManager().beginTransaction();
        mFrag = new SlidingFragment();
        t.replace(R.id.menu_frame, mFrag);
        t.commit();

                SlidingMenu sm = getSlidingMenu();
                sm.setShadowWidthRes(R.dimen.shadow_width);
                sm.setShadowDrawable(R.drawable.shadow);
                sm.setBehindOffsetRes(R.dimen.slidingmenu_offset);
                sm.setFadeDegree(0.35f);
                setSlidingActionBarEnabled(true);

                getSupportActionBar().setDisplayHomeAsUpEnabled(true);

dimen.xml

<resources>

    <dimen name="slidingmenu_offset">60dp</dimen>
    <dimen name="list_padding">10dp</dimen>
    <dimen name="shadow_width">15dp</dimen>

    <integer name="num_cols">1</integer>

</resources>

Sample:

https://www.4shared.com/rar/zOWrvmyu/ViewpagerandSherlock.html

This sample is perfectly working viewpager and sherlock.

Just implement this code in BaseSampleActivity extends SlidingFragmentActivity, create a simple SlidingFragment and it will works.

You need to extend a SlidingMenu class. To also use the ActionBar Sherlock library you must follow the steps listed in the Readme, in particular this one:

Go into the SlidingActivities that you plan on using make them extend Sherlock__Activity instead of __Activity.

So your project should extend SlidingActivity:

public class Waiter extends SlidingActivity {

And you need to change your copy of the SlidingMenu library to use ABS. Open com/slidingmenu/lib/app/SlidingActivity.java and change:

public class SlidingActivity extends Activity implements SlidingActivityBase {

to:

public class SlidingActivity extends SherlockActivity implements SlidingActivityBase {
//             Add "Sherlock" here:  ^^^^^^^^

(Repeat this step for any other SlidingMenu Activities you wish to use.)

这篇关于在slidingmenu奇怪的补偿行为的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆