2014-11-20 5 views
1

Предположим, что я хочу сделать TranslateAnimation на одном экране для перехода на экран. Все выглядит отлично, если у нас есть один родительский макет, который и, например, кнопка внутри этого макета. Тогда TranslateAnimation легко определяется кнопкой всегда будет отображаться из «снаружи» экрана.Сделать вид слайда на экране извне родителя

Проблема заключается в том, если мы имеем ситуацию, как это:

<LinearLayout1> 
    ... other layouts, views ... 
    <LinearLayout2> 
    <button></button> 
    </LinearLayout2> 
    ... other layouts, views ... 
</LinearLayout1> 

Проблема заключается в том, что кнопка находится внутри LinearLayout2, которая находится внутри LinearLayout1. Это означает, что я могу сделать TranslateAnimation работать только внутри LinearLayout2. Я не могу заставить кнопку появляться из-за экрана, потому что LinearLayout2 занимает только часть экрана, и кнопка не может быть анимирована из-за пределов ее родителя.

Можно ли сделать анимацию для отображения снаружи экрана в этом случае? Благодаря!

+0

«... кнопка не может быть анимирована из-за пределов ее родителя». - Вы уверены, что? Я имею в виду, вы пробовали? Я просто спрашиваю, потому что я почти уверен, что сделал это раньше. –

ответ

0

У вас наверняка есть возможность просмотра извне его родителя. Тем не менее, я не знаю о том, чтобы оживить из-за пределов своего дедушки и бабушки. Я не пробовал, но я думаю, что представление будет обрезано только для того, чтобы его рисовать внутри его родителя.

Вот код для анимации вид вверх из нижней части его родительского вида:

TranslateAnimation a = new TranslateAnimation(
    Animation.RELATIVE_TO_PARENT, 0, // from X 
    Animation.RELATIVE_TO_PARENT, 0, // to X 
    Animation.RELATIVE_TO_PARENT, 1f, // from Y 
    Animation.RELATIVE_TO_PARENT, 0); // to Y 
a.setDuration(1000); // milliseconds 
button.startAnimation(a); 

Является LinearLayout2 вблизи края экрана? Могли бы вы просто анимировать кнопку с той стороны родителя, так что, похоже, она появляется за пределами экрана?

Смежные вопросы