0

У меня есть представление, которое заполняет мой экран, я анимация его Y, поэтому верхняя часть его скрывается, BUT Мне нужно, чтобы кнопка осталась на месте.Android Keep view внизу фиксированный при переводе Y

код анимации:

mainLayout.animate().translationY(-toolbar.getBottom()).setInterpolator(new AccelerateInterpolator()).start(); 

Перед Прокрутка:

enter image description here

После Прокрутка:

enter image description here

ПРИМЕЧАНИЕ:

1) Я делаю это, потому что мне нужно скрыть панель инструментов на прокрутке.

2) Я пробовал использовать другой метод для скрытия панели инструментов, включая анимацию высоты панели, поля, отступы, НО они лагги, как ад.

3) Я попытался перевести панель инструментов, но она ниже макета сохранит свое положение и не будет двигаться вверх.

UPDATE 1:

<android.support.v4.widget.DrawerLayout 
    xmlns:tools="http://schemas.android.com/tools" 
    android:id="@+id/home_drawer_layout" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="@color/white" 
    tools:context=".HomeActivity" 
    android:cacheColorHint="@android:color/transparent" 
    android:clipToPadding="false" 
    > 

    <!-- main view --> 
    <RelativeLayout 
     xmlns:tools="http://schemas.android.com/tools" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:background="@color/tansparent" 
     android:id="@+id/home_main_layout" 
     tools:context=".HomeActivity"> 

     <android.support.v7.widget.Toolbar xmlns:app="http://schemas.android.com/apk/res-auto" 
              android:id="@+id/home_toolbar" 
              android:layout_width="match_parent" 
              android:layout_height="?attr/actionBarSize" 
              android:background="@color/category_activity_topbar_background" 
              app:theme="@style/Theme.AppCompat" 
              android:layout_alignParentTop="true"/> 

     <com.viewpagerindicator.TabPageIndicator 
      android:id="@+id/tab_indicator" 
      android:layout_height="@dimen/tab_height" 
      android:layout_width="match_parent" 
      android:layout_below="@+id/home_toolbar"/> 

     <android.support.v4.view.ViewPager 
      android:id="@+id/home_pager" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:layout_below="@id/tab_indicator"/> 

     <ImageButton 
      android:id="@+id/addBookButton" 
      android:layout_width="@dimen/add_button_width_height" 
      android:layout_height="@dimen/add_button_width_height" 
      android:scaleType="centerInside" 
      android:src="@drawable/add_button" 
      android:background="@drawable/circles_background" 
      android:adjustViewBounds="true" 
      android:layout_alignParentBottom="true" 
      android:layout_alignParentRight="true" 
      android:layout_marginBottom="@dimen/add_button_margin_bottom" 
      android:layout_marginRight="@dimen/add_button_margin_right" 
      android:onClick="importNewBooksButtonMethod"/> 

    </RelativeLayout> 

    <!-- drawer --> 
    <LinearLayout 
     android:id="@+id/settingDrawer" 
     android:layout_width="@dimen/setting_drawer_width" 
     android:layout_height="match_parent" 
     android:layout_gravity="start" 
     android:orientation="vertical" 
     android:background="@color/white" 
     android:clickable="true"> 
    </LinearLayout> 
</android.support.v4.widget.DrawerLayout> 
+0

вставить макет XML – Gaurav

+0

@GauravPolekar, размещенном, пожалуйста, посмотрите на ** Update 1 ** – mehdok

+0

Ok так что я понял, что его хорошо becouse из * Android: layout_alignParentBottom = "истинный" андроид: layout_alignParentRight = "true" * Так что я предлагаю вам использовать FrameLayout в качестве родителя и поместить в него весь код, а затем поместить на него изображение – Gaurav

ответ

1

нормально, я оживил весь вид и после этого я установить предел для представления на отрицательное значение. панель инструментов, скрывающаяся, и все работает нормально.

homeMainLayout.animate().translationY(-toolbar.getBottom()).setInterpolator(new AccelerateInterpolator()).withEndAction(new Runnable() 
      { 
       @Override 
       public void run() 
       { 
        DrawerLayout.LayoutParams params = (DrawerLayout.LayoutParams) homeMainLayout.getLayoutParams(); 
        params.bottomMargin = -toolbarHeight; 
        homeMainLayout.setLayoutParams(params); 
       } 
      }).start(); 
Смежные вопросы