我想实现一个功能,通过向下滑动手指来扩展下拉菜单或窗口,然后通过像在上那样在Android布局上释放或向上滑动手指来折叠它。
我不知道该怎么做。我搜索了很多平台,例如堆栈溢出,谷歌,GitHub等。但是不幸的是,我什至没有找到一个示例或一段代码。如果有人对此有任何想法,请向我推荐任何材料或有用的链接。
非常感谢!
答案 0 :(得分:0)
听起来像您在寻找Collapsing Toolbars。
这将为您提供所需的外观-向下滚动时,布局的顶部将扩展,而向上滚动时,布局的顶部将变为最小。
现在,您知道您需要实现什么,您可以找到许多关于this,this from the material design等主题的指南。
答案 1 :(得分:0)
我认为您想要的是Bottom Sheet view 您可以找到here和here
实施的其他教程答案 2 :(得分:0)
您可以使用动画从上到下显示隐藏视图。下面是一些示例代码:
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:id="@+id/menu_img"
android:layout_width="@dimen/_30sdp"
android:layout_height="@dimen/_30sdp"
android:layout_alignParentTop="true"
android:layout_margin="@dimen/_10sdp"
android:tint="@color/blackColor"
app:srcCompat="@drawable/ic_menu_black_24dp" />
<View
android:id="@+id/hiddenView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/black_translucent"
android:visibility="gone" />
<include
android:id="@+id/slider"
layout="@layout/slider_menu"
android:layout_width="match_parent"
android:layout_height="200dp"
android:layout_below="@+id/menu_img"
android:visibility="gone" />
</RelativeLayout>
slider_menu是您要在滑块中显示的自己的布局 下面是Java代码:
hiddenView = view.findViewById(R.id.hiddenView);
ImageView menuIcon = view.findViewById(R.id.menu_img);
menuIcon.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
topToBottomAnimation(slider);
}
});
hiddenView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
hideViewAnimation(slider);
}
});
public void hideViewAnimation(View view) {
Animation hideView = AnimationUtils.loadAnimation(mContext, R.anim.swipe_up);
view.startAnimation(hideView);
view.setVisibility(View.GONE);
hiddenView.setVisibility(View.GONE);
}
public void topToBottomAnimation(View view) {
Animation showView = AnimationUtils.loadAnimation(mContext, R.anim.swipe_down);
view.startAnimation(showView);
view.setVisibility(View.VISIBLE);
hiddenView.setVisibility(View.VISIBLE);
}
此处swipe_down和swipe_up是动画文件夹中的xml文件:
滑动:
<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="200"
android:fromYDelta="-100%"
android:toYDelta="0%" >
</translate>
向下滑动:
<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="300"
android:fromYDelta="-100%"
android:toYDelta="0%" >
</translate>