2016-04-24 4 views
1

Я пытаюсь изменить высоту RelativeLayout как пользовательские свитки, поэтому он плавно перемещается вверх. Это своего рода работа, но все это мерцает и сжимается.Изменить RelativeLayout height как пользовательские прокрутки в scrollview

Я попытался использовать setTranslationY, но это не перемещает scrollview с RelativeLayout.

int top = mScrollView.getScrollY(); 
int maxRelative = formulas.dpToPx(250); 
int actualRelative = (int)((1.0-((float)top)/300.0)*((float)maxRelative)); 
RelativeLayout.LayoutParams layout_description = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, 
          actualRelative); 
mCollapsingLayout.setLayoutParams(layout_description); 
        mCollapsingLayout.requestLayout(); 

Вот как это выглядит

http://imgur.com/7PL6Yt5

Если у вас есть какие-либо лучшее представление о том, как уменьшить RelativeLayout при прокрутке, его оценили.

Edit: вот мой XML

<RelativeLayout 
    android:layout_width="match_parent" 
    android:layout_height="@dimen/app_bar_height" 
    android:id="@+id/collapsing.view"> 

    <ImageView 
     android:id="@+id/collapsing.view.image" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:src="@drawable/theflash" 
     android:tint="#7F000000" 
     android:scaleType="centerCrop"/> 
    <ImageButton 
     android:id="@+id/favorite.button" 
     android:layout_width="70dp" 
     android:layout_height="70dp" 
     android:background="?android:attr/selectableItemBackground" 
     android:scaleType="fitCenter" 
     android:layout_centerHorizontal="true" 
     android:layout_alignParentBottom="true" 
     android:layout_marginBottom="30dp" 
     android:src="@drawable/favorite_button" 
     /> 
    <FrameLayout 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_centerInParent="true" 
     android:paddingBottom="30px"> 
     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="The Flash" 
      android:textColor="#fff" 
      android:textSize="25sp" 
      android:layout_centerInParent="true" 
      /> 
    </FrameLayout> 
</RelativeLayout> 

<ScrollView 
    android:id="@+id/detail.scrollview" 
    android:layout_below="@+id/collapsing.view" 
    android:layout_width="match_parent" 
    android:fillViewport="true" 
    android:layout_height="match_parent"> 
    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:orientation="vertical"> 
</LinearLayout> 
</ScrollView> 
+0

Вы можете использовать файл XML макет? – Alex

+0

Да, его в главном сообщении сейчас :) – Bartando

+0

Вы пытаетесь изменить размер всего 'collapsing.view' или пытаться добавить эффект параллакса к изображению? – Alex

ответ

1

Вам нужно разместить Ваш RelativeLayout внутри ScrollView и попытаться setTranslationY снова - он должен работать

+0

Я пробовал этот подход, и он работает, ему просто нужно много настроек, чтобы он выглядел так, как я хочу :) спасибо за вашу поддержку – Bartando

1

Есть несколько подходов к этому, в том числе легко доступные классы, такие как this one который в основном делает то, что вы хотите. Вы, возможно, потребуется удалить части для сокращения текста и так далее, но это именно там, где вам это нужно

enter image description here

+0

Это именно то, что мне нужно, я не хотите использовать Appcompats CollapsingToolbar, потому что это ужасно, когда дело доходит до настройки. Я попытаюсь углубиться в это. Спасибо :) – Bartando

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