1

アプリケーションに SlidingMenu を含めようとしています。ActionBarSherlock / ViewPagerIndicator / SlidingMenu の 3 つのライブラリを組み合わせたものです。問題は、右にスライドして SlidingMenu を展開すると、オフセットがないことです。つまり、穴の画面がメニューで埋められます。トグルボタンを押していると、本当に奇妙に見えます。彼はオフセットを取得したようですが、写真を見てください...トグルボタンを2回押すと、そうなるはずです-.-'

私が間違ったことをしたことはありますか?

それは私の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>

そして、これは私の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);
4

2 に答える 2

2

それは私が使用するものです:

// 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>

サンプル:

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

このサンプルは、viewpager と sherlock を完全に動作させます。

このコードを BaseSampleActivity に実装して SlidingFragmentActivity を拡張し、単純な SlidingFragment を作成するだけで機能します。

SlidingMenu クラスを拡張する必要があります。ActionBar Sherlock ライブラリも使用するには、Readme に記載されている手順、特に次の手順に従う必要があります。

使用する予定の SlidingActivities に移動し、__Activity ではなく Sherlock__Activity を拡張します。

したがって、プロジェクトは SlidingActivity を拡張する必要があります。

public class Waiter extends SlidingActivity {

そして、ABS を使用するように SlidingMenu ライブラリのコピーを変更する必要があります。com/slidingmenu/lib/app/SlidingActivity.java を開き、次のように変更します。

public class SlidingActivity extends Activity implements SlidingActivityBase {

に:

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

(使用する他の SlidingMenu アクティビティについて、この手順を繰り返します。)

于 2013-02-05T16:37:55.910 に答える
0

This answer isn´t necessary so I edited to focus other one!

于 2013-02-06T18:07:52.583 に答える