У меня есть деятельность, и его расположение contentView как это:Почему анимация перевода не работает?
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/schedule_item_list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<ListView
android:id="@+id/item_list"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1" />
<LinearLayout
android:id="@+id/bottom_menu"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:visibility="gone" >
<!-- some buttons -->
</LinearLayout>
</LinearLayout>
Я хочу, чтобы показать и скрыть нижнюю LinearLayout так, чтобы сделать его действовать как нижней части меню, создать такую функцию:
private void showBottomMenuView()
{
if (mBottomMenuView.getVisibility() != View.VISIBLE) {
Animation slideinAnimation = new TranslateAnimation(0.0f, 0.0f, 1.0f, 0.0f);
slideinAnimation.setDuration(300);
mBottomMenuView.startAnimation(slideinAnimation);
mBottomMenuView.setVisibility(View.VISIBLE);
}
}
однако он не работает, когда я хочу показать нижнюю компоновку (mBottomMenuView). вид не будет скользить снизу плавно, он просто появляется внезапно
Но когда я загружаю анимацию из xml, это действительно сработало.
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:fromYDelta="100%"
android:toYDelta="0%"
android:duration="300"/>
</set>
private void showBottomMenuView()
{
if (mBottomMenuView.getVisibility() != View.VISIBLE) {
Animation slideinAnimation = AnimationUtils.loadAnimation(getActivity(), R.anim.slide_in);
mBottomMenuView.startAnimation(slideinAnimation);
mBottomMenuView.setVisibility(View.VISIBLE);
}
}
Почему предыдущая новая анимация не сработала?
Спасибо за ваш ответ, я посмотрел на источник и нашел четыре параметров TranslateAnimation конструктор установки от и до введите значение ABSLOUTE по умолчанию – tinaJohnny