如果点击View
上的按钮/图片/标签,我想实现从顶部滑动的ActionBar
。我希望它像默认的DrawerLayout
一样工作,除了从左/右侧滑动,它在这种情况下从上到下滑动。
我该如何解决这个问题? Android是否有一个处理此问题的默认类或操作?
我设法提到这个解决方案AndroidSwipeLayout。然而,它并没有真正做我想要的。
提前谢谢大家。
答案 0 :(得分:2)
如果您有一个按钮,请点击该按钮调用以下功能,如下所示。
clickMe.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
yourLinerLayout.setVisibility(View.VISIBLE);
setLayoutAnim_slideDown(view);
}
});
这里是setLayoutAnim_slideDown
功能,它会向下滑动您要从上到下滑动的布局。
public void setLayoutAnim_slideDown(ViewGroup panel) {
AnimationSet set = new AnimationSet(true);
Animation animation = new TranslateAnimation(
Animation.RELATIVE_TO_SELF, 0.0f, Animation.RELATIVE_TO_SELF,
0.0f, Animation.RELATIVE_TO_SELF, -1.0f,
Animation.RELATIVE_TO_SELF, 0.0f);
// Set the duration here for animation in millis.
animation.setDuration(2000);
animation.setAnimationListener(new Animation.AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
}
@Override
public void onAnimationRepeat(Animation animation) {
}
@Override
public void onAnimationEnd(Animation animation) {
}
});
set.addAnimation(animation);
LayoutAnimationController controller = new LayoutAnimationController(
set, 0.25f);
panel.setLayoutAnimation(controller);
}
例如,我的布局是这样的。
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/main_content"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:id="@+id/slider"
android:layout_width="match_parent"
android:layout_height="200dp"
android:background="@color/colorAccent"
android:orientation="horizontal"
android:visibility="gone">
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="center"
android:text="masud is noob"
android:textColor="@android:color/white"
android:textStyle="bold" />
</LinearLayout>
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="click me" />
</android.support.design.widget.CoordinatorLayout>
名为LinearLayout
的{{1}}内的项目将在此处制作动画。