Я использовал код в Google IO репо: https://github.com/google/iosched/blob/master/android/src/main/java/com/google/samples/apps/iosched/ui/BaseActivity.javaAnimate содержание, когда скрывается ActionBar/панель
Я пытаюсь скрыть панель при прокрутке и он прекрасно работает, но моя проблема в том, что моя главная контент остается фиксированным, когда панель инструментов анимируется вне экрана.
код, который запускает анимацию на R.id.toolbar_actionbar является:
view.animate()
.translationY(-view.getBottom())
.alpha(0)
.setDuration(HEADER_HIDE_ANIM_DURATION)
.setInterpolator(new DecelerateInterpolator());
Я попытался положить панель внутри LinearLayout с содержанием, но это ничего не меняет. Только если я установил панель действия на видимость = ушел, содержимое будет двигаться вверх.
Кто-нибудь знает, что я должен сделать, чтобы сделать анимированный контент вместе с трансляционной анимацией панели инструментов?
В основном вопрос сводится к следующему: как я могу анимировать положение одного вида и сделать другие представления живыми вместе с ним?
Код Google IO, похоже, просто анимирует панель инструментов, а остальная часть контента поддерживает ее, но я не могу заставить это работать.
<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<include
android:id="@+id/toolbar_actionbar"
layout="@layout/toolbar_actionbar" />
<FrameLayout
android:id="@+id/main_fragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@+id/adsContainer"
android:layout_below="@+id/toolbar_actionbar" />
<LinearLayout
android:id="@+id/adsContainer"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:background="#000000"
android:orientation="horizontal" />
</RelativeLayout>
<!-- The navigation drawer -->
<ExpandableListView
android:id="@+id/left_drawer"
android:layout_width="240dp"
android:layout_height="match_parent"
android:layout_gravity="start"
android:background="#111"
android:choiceMode="singleChoice"
android:divider="@android:color/transparent"
android:dividerHeight="0dp" />
</android.support.v4.widget.DrawerLayout>
Спасибо! Мне удалось это сделать и с (API-уровень 16): LayoutTransition trans = ((RelativeLayout) findViewById (R.id.wrapper)). GetLayoutTransition(); trans.enableTransitionType (LayoutTransition.CHANGING); А затем установите высоту.Но действительно хотелось бы знать, где волшебство в коде IO Google, что заставляет это работать. –
@ChristerNordvik находится внутри пакетов appwidget. У них есть пользовательские классы, чтобы делать эти вещи. – k0sh
Хотя это работает, это дало мне очень грубый переход, ища более плавную работу. благодаря – ElliotM