私は同様の機能を望んでいました。パネルの高さを0にしてスワイプで拡大したかったのです。
- カスタムレイアウトを作成し、
onTouchIntercepted
方法
- IDとセットでカスタムビューを見つけ、あなたの活動に
- (インタフェースを使用)活動からのコールバックイベントを呼び出して設定するためのロジックを追加をオーバーライドします新しいコールバック、コールバックで
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
私はUmanoとは別のライブラリを使用することをお勧めします。制限が少なく、パフォーマンスが向上し、実装が容易ですhttps://github.com/drxeno02/androidprojects-book2-slidingdrawer – portfoliobuilder