所以我在臭名昭着的滑出菜单上尝试我的破解,就像在G +和Youtube中一样。 在这个原因我正在设置一个ActionBar UP按钮,我想用它来打开侧面菜单。 我有大部分内容都正确布局,但是当我问起时,我的HorizontalScrollView没有滑动。
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<include
android:layout_width="wrap_content"
layout="@layout/side_menu" />
<HorizontalScrollView
android:id="@+id/menu_scroll_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="true"
android:scrollbars="horizontal" >
<include
layout="@layout/main_content" />
</HorizontalScrollView>
</FrameLayout>
private void toggleSideMenu() {
mMenuScrollView.postDelayed(new Runnable() {
@Override
public void run() {
int menuWidth = mSideMenu.getMeasuredWidth();
if (!mIsMenuVisible) {
// Scroll to 0 to reveal menu
int left = 0;
mScrollView.smoothScrollTo(left, 0);
} else {
// Scroll to menuWidth so menu isn't on screen.
int left = menuWidth;
mScrollView.smoothScrollTo(left, 0);
}
mIsMenuVisible = !mIsMenuVisible;
}
}, 50);
}
我对smoothScroll的调用似乎不起作用。
答案 0 :(得分:0)
我调整了一些示例并最终使其正常工作。比我在那里看到的其他例子更多的准分子。 这可以正常工作,但我没有MenuSliding的平滑动画。而且我不需要HorizontalScrollView。作为副作用,用户必须按下按钮才能弹出菜单。这将没有幻灯片功能。
然而,这是一个BARE BONES例子让事情滚滚而来。享受!
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<!-- Base layout has id/side_menu -->
<include layout="@layout/side_menu" />
<!-- Base layout has id/content -->
<include layout="@layout/content" />
</FrameLayout>
这是我的活动
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mContentView = findViewById(R.id.content);
mSideMenu = findViewById(R.id.side_menu);
mIsMenuVisible = false;
}
private void toggleSideMenu() {
if (mIsMenuVisible) {
mSideMenu.setVisibility(View.INVISIBLE);
mContent.scrollTo(0, 0);
} else {
int menuWidth = mSideMenu.getMeasuredWidth() * -1;
mSideMenu.setVisibility(View.VISIBLE);
mContentView.scrollTo(menuWidth, 0);
}
mIsMenuVisible = !mIsMenuVisible;
}