- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的应用有一个 map fragment 。在单击标记时,从底部到屏幕的一半会显示一个向上滑动的动画。然后再次点击标记向下滑动。
I want : Slide up menu should be clickable or drag gable so that it can move to top of screen . to be more clear , i mean either on clicking or dragging this slide up menu which is on half of screen , should go to top of screen .
到目前为止我完成了:点击标记时,将向上滑动动画调用到屏幕的一半。 :
动画代码:slide_up.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<objectAnimator
android:interpolator="@android:anim/accelerate_decelerate_interpolator"
android:propertyName="yFraction"
android:valueType="floatType"
android:valueFrom="1.0"
android:valueTo="0.58"
android:duration="@android:integer/config_mediumAnimTime"/>
<objectAnimator
android:interpolator="@android:anim/accelerate_decelerate_interpolator"
android:propertyName="alpha"
android:valueType="floatType"
android:valueFrom="0.58"
android:valueTo="1.0"
android:duration="@android:integer/config_mediumAnimTime"/>
</set>
slide_down.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<objectAnimator
android:interpolator="@android:anim/accelerate_decelerate_interpolator"
android:propertyName="yFraction"
android:valueType="floatType"
android:valueFrom="0.58"
android:valueTo="1.0"
android:duration="@android:integer/config_mediumAnimTime"/>
<objectAnimator
android:interpolator="@android:anim/accelerate_decelerate_interpolator"
android:propertyName="alpha"
android:valueType="floatType"
android:valueFrom="1"
android:valueTo="0"
android:duration="@android:integer/config_mediumAnimTime"/>
</set>
在标记点击时调用此动画的 Activity 中的代码:
public void toggleList() {
Fragment f = getFragmentManager().findFragmentByTag(LIST_FRAGMENT_TAG);
if (f != null) {
getFragmentManager().popBackStack();
} else {
getFragmentManager()
.beginTransaction()
.setCustomAnimations(R.anim.slide_up,
R.anim.slide_down,
R.anim.slide_up,
R.anim.slide_down)
.add(R.id.list_fragment_container, BaseMapSlidingFragment
.instantiate(this, BaseMapSlidingFragment.class.getName()),
LIST_FRAGMENT_TAG
)
.addToBackStack(null).commit();
googleMap.getUiSettings().setAllGesturesEnabled(false);
if(animCheck == false){
animCheck = true;
}else
{
animCheck= false;
}
}}
menu_Sliding.up.xml
<?xml version="1.0" encoding="utf-8"?>
<com.trickyandroid.fragmenttranslate.app.view.SlidingRelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="200dp"
android:background="#7c7c7c">
<ListView
android:id="@android:id/list"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</com.trickyandroid.fragmenttranslate.app.view.SlidingRelativeLayout>
自定义 View :
**package com.trickyandroid.fragmenttranslate.app.view;
import android.content.Context;
import android.util.AttributeSet;
import android.view.ViewTreeObserver;
import android.widget.RelativeLayout;
/**
* Created by paveld on 4/13/14.
*/
public class SlidingRelativeLayout extends RelativeLayout {
private float yFraction = 0;
public SlidingRelativeLayout(Context context) {
super(context);
}
public SlidingRelativeLayout(Context context, AttributeSet attrs) {
super(context, attrs);
}
public SlidingRelativeLayout(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
private ViewTreeObserver.OnPreDrawListener preDrawListener = null;
public void setYFraction(float fraction) {
this.yFraction = fraction;
if (getHeight() == 0) {
if (preDrawListener == null) {
preDrawListener = new ViewTreeObserver.OnPreDrawListener() {
@Override
public boolean onPreDraw() {
getViewTreeObserver().removeOnPreDrawListener(preDrawListener);
setYFraction(yFraction);
return true;
}
};
getViewTreeObserver().addOnPreDrawListener(preDrawListener);
}
return;
}
float translationY = getHeight() * fraction;
setTranslationY(translationY);
}
public float getYFraction() {
return this.yFraction;
}
}**
现在如何在单击向上滑动菜单时将此菜单置于屏幕顶部哪个在屏幕的一半?
最佳答案
我建议你使用AndroidSlidingUpPanel 库,可以找到here .你没有必要再写同样的东西。
它拥有您所需要的,甚至更多。它易于使用和修改(我正在我的项目中使用它)。
如何使用
com.sothree.slidinguppanel.SlidingUpPanelLayout
作为 Activity 布局中的根元素。match_parent
。match_parent
,高度应设置为 match_parent
、wrap_content
或所需的最大高度。setDragView
方法或 umanoDragView
属性将拖动区域限制为特定 View 。关于android - 如何实现 umano/AndroidSlidingUpPanel 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33912760/
我正在探索 https://github.com/umano/AndroidSlidingUpPanel图书馆。当我滑动底部面板时,在幻灯片完成时它会获取完整的屏幕区域。 任何人都可以帮助我,如何将底
已解决: 显然源已更新以添加此功能。在那之前,我 fork 了源代码来做到这一点,并有一个标志来关闭方向变化。我的 fork 位于 github.com/Style87/AndroidSlidingU
我的应用有一个 map fragment 。在单击标记时,从底部到屏幕的一半会显示一个向上滑动的动画。然后再次点击标记向下滑动。 I want : Slide up menu should be cl
我正在使用 umano AndroidSlidingUpPanel在我的安卓项目中。在这里我使用谷歌地图作为我的主要内容。以下是相关的 XML 文件。
所以我开始使用 Umano 的 AndroidSlidingUpPanel 库,它非常有用。我设法从底部实现了一个滑动面板,效果很好。但是我想实现两个滑动面板(顶部和底部),如下所示: 这是我目前所拥
这个问题在这里已经有了答案: ListView inside ScrollView is not scrolling on Android (28 个答案) 关闭上个月。 我小时候有一个带有 Lis
我有一个关于 Umano AndroidSlidingUpPanel 的问题,我似乎没有找到解决方案。我想要两个 View ,一个在另一个之上,可以选择上下滚动,就像在 https://github.
我已经在我的应用程序中实现了 AndroidSlidingUpPanel 库,一切正常,但我希望滑动布局滑动直到它进入我的应用程序栏下方。 谢谢 Link to the Library 最佳答案 你可
我正在尝试使用 AndroidSlidingUpPanel library (在 Eclipse 中)我有这个错误: 04-19 20:09:48.413: E/AndroidRuntime(1376
我使用 Gradle 在 IntelliJ IDEA 上创建了一个项目,并尝试将 AndroidSlidingUpPanel 添加到其中( https://github.com/umano/Andro
我已经做了好几个小时了,但我仍然无法让 Umano 的向上滑动面板库在 android studio 中工作(https://github.com/umano/AndroidSlidingUpPane
我是一名优秀的程序员,十分优秀!