2017-08-02 43 views
0

我有一個RelativeLayout一個PercentRelativeLayout內如下面的代碼顯示的RelativeLayout不擴大,以填補父時的觀點被添加到父

<android.support.percent.PercentRelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
               xmlns:app="http://schemas.android.com/apk/res-auto" 
               android:layout_width="match_parent" 
               android:layout_height="wrap_content" 
               android:orientation="vertical" 
               android:padding="10dp"> 

    <RelativeLayout 
     android:id="@+id/clickBox" 
     android:layout_height="match_parent" 
     android:background="@color/PaleBlack" 
     android:fillViewport="true" 
     app:layout_widthPercent="35%"> 

     <ImageView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_centerInParent="true" 
      android:scaleX="0.8" 
      android:scaleY="0.8" 
      android:src="@mipmap/ic_open"/> 

    </RelativeLayout> 

</android.support.percent.PercentRelativeLayout> 

它給出了一個樣子如下圖所示,這是很好的 enter image description here

但是,如果我然後以編程方式將一個TextView添加到PercentRelativeLayout,則RelativeLayout不會擴展垂直填充父項PercentRelativeLayout,然後結果如下所示

enter image description here

我該如何解決這個問題,以便RelativeLayout填充父母的身高?

+0

難道不清楚嗎? RelativeLayout **不會**展開(至少,如果您設置了'android:layout_width =「match_parent」')。 ImageView **不**。 –

+0

@ModularSynth不,我把一個黑色的背景來確保它不會擴展 –

+0

@TimCastelijns不幸的是沒有第二個XML。視圖是在佈局繪製後通過代碼動態添加的 –

回答

0

由於PercentRelativeLayout已被棄用,你可以考慮切換到一個ConstraintLayout的解決方案,像這樣一個佈局:

<?xml version="1.0" encoding="utf-8"?> 
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical"> 

    <android.support.constraint.Guideline 
     android:id="@+id/guideline" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:orientation="vertical" 
     app:layout_constraintGuide_percent="0.30" /> 

    <RelativeLayout 
     android:layout_width="0dp" 
     android:layout_height="0dp" 
     android:layout_marginBottom="0dp" 
     android:layout_marginLeft="0dp" 
     android:layout_marginRight="0dp" 
     android:layout_marginTop="0dp" 
     app:layout_constraintBottom_toBottomOf="parent" 
     app:layout_constraintHorizontal_bias="0.495" 
     app:layout_constraintLeft_toLeftOf="parent" 
     app:layout_constraintRight_toLeftOf="@+id/guideline" 
     app:layout_constraintTop_toTopOf="parent" 
     app:layout_constraintVertical_bias="0.0"> 

     <ImageView 
      android:id="@+id/imageView" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_centerHorizontal="false" 
      android:layout_centerInParent="true" 
      android:adjustViewBounds="false" 
      app:srcCompat="@mipmap/ic_launcher" /> 

    </RelativeLayout> 

</android.support.constraint.ConstraintLayout> 

你可以添加第二個指引,錨,你正在生成的方針和到TextView父母就像我對RelativeLayout所做的那樣。

+0

不知道你可以在ConstraintLayouts中使用百分比。我要研究這個問題並最終將PercentRelativeLayouts轉換爲約束條件。乾杯 –

相關問題