我正在尝试将SlidingMenu包含到我的应用程序中。它结合了3个库ActionBarSherlock / ViewPagerIndicator / SlidingMenu。那么问题是如果我向右滑动以扩展SlidingMenu它没有偏移。这意味着孔屏幕将由菜单填充。如果我按下切换按钮,它看起来很奇怪。似乎他得到了偏移,但是看图片......如果我按下两次切换按钮,它看起来应该是-.-'
知道我做错了吗?
这就是我的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);
答案 0 :(得分: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库,您必须遵循自述文件中列出的步骤,特别是以下步骤:
进入您计划使用的SlidingActivities,使它们延伸Sherlock__Activity而不是__Activity。
所以你的项目应该扩展SlidingActivity:
public class Waiter extends SlidingActivity {
您需要更改SlidingMenu库的副本才能使用ABS。打开com / slidingmenu / lib / app / SlidingActivity.java并更改:
public class SlidingActivity extends Activity implements SlidingActivityBase {
为:
public class SlidingActivity extends SherlockActivity implements SlidingActivityBase {
// Add "Sherlock" here: ^^^^^^^^
(对您要使用的任何其他SlidingMenu活动重复此步骤。)
答案 1 :(得分:0)
这个答案没有必要,所以我编辑专注于其他人!