我遇到了Umano AndroidSlidingUpPanel的问题,我似乎找不到解决办法。我想要两个视图,一个在另一个上面,可以选择向上和向下滚动,就像在https://github.com/umano/AndroidSlidingUpPanel的演示中一样,它完美无缺。但是,我希望顶视图在折叠时完全隐藏,就好像sothree:umanoPanelHeight =“0dp”。这条线的问题是当高度为0时我无法到达面板。 当您从左侧滑入菜单并从右侧滑回菜单时,Google地图具有我想要的功能。
我的代码与演示中的代码非常相似,所以我认为在这里粘贴任何代码都没有意义。我对其他解决方案的选择持开放态度,但我需要向后兼容早期的Android版本。
感谢您的任何意见!
答案 0 :(得分:1)
我想要一个类似的功能:我希望将面板高度保持为0并在滑动时展开。
onTouchIntercepted
方法PanelState.EXPANDED
此处以及我从Github页面获得的示例类由贡献者提供:
public class SlidingAwareLinearLayout extends LinearLayout {
public SlidingAwareLinearLayout(final Context context) {
super(context);
}
public SlidingAwareLinearLayout(final Context context, final AttributeSet attrs) {
super(context, attrs);
}
public SlidingAwareLinearLayout(
final Context context, final AttributeSet attrs, final int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
public SlidingAwareLinearLayout(
final Context context, final AttributeSet attrs, final int defStyleAttr,
final int defStyleRes) {
super(context, attrs, defStyleAttr, defStyleRes);
}
@Override
public boolean onInterceptTouchEvent(final MotionEvent ev) {
SlidingUpPanelLayout panel = (SlidingUpPanelLayout) getParent();
if (ev.getAction() == MotionEvent.ACTION_DOWN
&& panel.getPanelState() == SlidingUpPanelLayout.PanelState.ANCHORED) {
panel.setPanelState(SlidingUpPanelLayout.PanelState.COLLAPSED);
return true;
}
return super.onInterceptTouchEvent(ev);
}
}
资源:https://github.com/umano/AndroidSlidingUpPanel/issues/476