Widok Androida Znikający, Gdy Wychodzisz Poza Rodzica
Mam LinearLayout i ImageView wewnątrz tej LinearLayout.
Istnieje efekt tłumaczenia dla ImageView.
// v = ImageView
ObjectAnimator animation2 = ObjectAnimator.ofFloat(v, "translationY", 200);
animation2.setDuration(3000);
animation2.setTarget(v);
animation2.start();
Animacja działa, ale znika, gdy ImageView wychodzi poza LinearLayout.
Możesz zobaczyć problem tutaj: http://screenr.com/zoAH
Jak mogę to naprawić bez modyfikowania wysokości LinearLayout.
6 answers
Znajdź grupę ViewGroup, do której należy ImageView i zastosuj ViewGroup.setClipChildren (false) . Domyślnie rysowanie dzieci jest ograniczone do granic nadrzędnej grupy widoków.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-08-05 01:15:19
Istnieją dwa atrybuty, które mogą to spowodować: clipChildren i clipToPadding. Musisz ustawić clipChildren na false dla każdej nadrzędnej grupy widoków, z której granic obiekt będzie animowany. Musisz również ustawić clipToPadding do bezpośredniego rodzica (i może więcej ,ale nie widziałem jeszcze przypadku).
Można ustawić oba atrybuty w XML
android:clipChildren="false"
android:clipToPadding="false"
Lub w kodzie
viewGroup.setClipChildren(false);
viewGroup.setClipToPadding(false);
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-09-13 15:58:38
Moja realizacja. To pewnie może komuś pomóc:
public static void setAllParentsClip(View v, boolean enabled) {
while (v.getParent() != null && v.getParent() instanceof ViewGroup) {
ViewGroup viewGroup = (ViewGroup) v.getParent();
viewGroup.setClipChildren(enabled);
viewGroup.setClipToPadding(enabled);
v = viewGroup;
}
}
Call
setAllParentsClip(yourView, false);
aby wyłączyć wycinanie u wszystkich rodziców.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-03-24 16:29:59
W moim przypadku clipChildren nie zrobił nic, ale clipToPadding="false"
Naprawiono problem. Pomyśl.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-06-11 17:26:56
Uzyskaj wysokość widoku, a następnie dodaj procent wysokości do miejsca, w którym będzie się przesuwać
public void SlideUp(View view){
float height = view.getHeight();
TranslateAnimation animate = new TranslateAnimation(0,0,0,0);
animate.setDuration(500);
animate.setFillAfter(true);
view.animate().translationY((float)(0-0.62*height)).start();
view.startAnimation(animate);
}
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-01-26 12:17:48
try to update camera position as in my case below:
ValueAnimator lockAnimator = ValueAnimator.ofFloat(1, 0); // value from 0 to 1
lockAnimator.setDuration(500);
lockAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator pAnimation) {
float value = (Float) (pAnimation.getAnimatedValue());
if (value < .6 && flipped) {
if (preview != null)
mCanvasImage.setImageBitmap(preview);
else
mCanvasImage.setImageBitmap(imageBitmap);
flipped = false;
}
if (value > .3 && value < .7) {
lyt_rlt_container.setCameraDistance(lyt_rlt_container.getCameraDistance() - 100);
} else {
lyt_rlt_container.setCameraDistance(lyt_rlt_container.getCameraDistance() + 100);
}
lyt_rlt_container.setRotationY(180 * value);
}
});
lockAnimator.start();
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-01-03 10:50:41