2016-11-17 166 views
0
<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:id="@+id/container" 
    android:background="?android:attr/selectableItemBackground" 
    android:layout_height="wrap_content"> 
    <FrameLayout 
     android:layout_width="wrap_content" 
     android:id="@+id/frame" 
     android:layout_marginLeft="16dp" 
     android:layout_marginTop="18dp" 
     android:layout_marginBottom="10dp" 
     android:layout_height="wrap_content"> 
     <ProgressBar 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_gravity="center" 
      android:minHeight="5dip" 
      android:minWidth="5dip" 
      android:maxWidth="20dip" 
      android:maxHeight="20dip" 
      android:id="@+id/progress_bar" 
      android:visibility="visible"/> 

     <RelativeLayout 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content"> 
      <ImageView 
       android:id="@+id/cover" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_gravity="center" 
       /> 
      <TextView 
       android:id="@+id/changeinscore" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:text="0.00" 
       android:shadowColor="#000000" 
       android:shadowDx="1" 
       android:shadowDy="1" 
       android:layout_centerHorizontal="true" 
       android:layout_centerVertical="true" 
       android:shadowRadius="7" 
       android:textSize="12sp" 
       android:textColor="@color/background" 
       android:fontFamily="sans-serif-condensed"/> 
     </RelativeLayout> 

    </FrameLayout> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/middle" 
     android:layout_toRightOf="@+id/frame" 
     android:layout_centerVertical="true" 
     android:text="TextView" 

     /> 

</RelativeLayout> 

我想將中間TextView垂直居中放置在FrameLayout的右側,因爲changeinscore TextView位於FrameLayout內部,如果有意義的話。目前它不在中心位置,因爲如果我理解正確,centerVertical將它集中在整個RelativeLayout中,而不是專門用於FrameLayout。基本上我希望中間的textview是空的,但實際上是錨定其他textview,所以我可以有2個textview稍微偏離framelayout/imageview。將TextView垂直居中放置在FrameLayout的右側

如果我按照聖說什麼,這裏是結果,但不正是我想要 enter image description here

回答

1

我終於得到了你想要的東西,這裏是我對它的樣品。

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:id="@+id/container" 
    android:background="?android:attr/selectableItemBackground" 
    android:layout_height="wrap_content"> 

    <RelativeLayout 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/frame" 
     android:layout_margin="10dp" 
     android:gravity="center"> 


     <ImageView 
      android:id="@+id/cover" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:src="@drawable/im" 
      /> 

     <TextView 
      android:id="@+id/changeinscore" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="0.00" 
      android:shadowColor="#000000" 
      android:shadowDx="1" 
      android:shadowDy="1" 
      android:visibility="gone" 
      android:layout_centerHorizontal="true" 
      android:layout_centerVertical="true" 
      android:shadowRadius="7" 
      android:textSize="12sp" 
      android:layout_margin="5dp" 
      android:textColor="@color/background" 
      android:fontFamily="sans-serif-condensed"/> 

     <ProgressBar 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_gravity="center" 
      android:minHeight="5dip" 
      android:minWidth="5dip" 
      android:maxWidth="20dip" 
      android:maxHeight="20dip" 
      android:layout_centerInParent="true" 
      android:id="@+id/progress_bar" 
      android:visibility="visible"/> 

    </RelativeLayout> 


    <LinearLayout 
     android:layout_width="wrap_content" 
     android:layout_height="match_parent" 
     android:layout_centerHorizontal="true" 
     android:layout_alignTop="@+id/frame" 
     android:layout_alignBottom="@+id/frame" 
     android:layout_toRightOf="@id/frame" 
     android:gravity="center" 
     android:weightSum="3" 
     android:orientation="vertical"> 


     <TextView 
      android:id="@+id/title" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="Aldnoah.Zero" 
      android:layout_weight="1" 
      android:ellipsize="end" 
      android:maxLines="1" 
      android:paddingLeft="5dp" 
      android:gravity="bottom" 
      android:fontFamily="sans-serif-slab" 
      android:textSize="16sp" 
      /> 

     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:gravity="center" 
      android:id="@+id/middle" 
      android:text="TextView" 
      android:layout_weight="1" 
      android:paddingLeft="5dp" 
      android:textSize="14sp" 
      /> 

     <TextView 
      android:id="@+id/score" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:text="Bottom Text" 
      android:paddingLeft="5dp" 
      android:textSize="14sp" 
      android:gravity="top" 
      android:fontFamily="sans-serif-condensed"/> 

    </LinearLayout> 



</RelativeLayout> 

而且佈局看起來像this

+0

問題是,這是行不通的,因爲我基本上是要使用TextView的錨其他TextViews是附近的FrameLayout的中心。反正它並不居中。 – user2923535

+0

也許你應該爲你的根'RelativeLayout'和'FrameLayout'添加'match_parent'屬性,以便你的根中的每個視圖被完全佔用,並且給它賦予一個'centerVertical'屬性可能更有意義。如果這些屬性不妨礙您的設計。 – San

+0

我認爲它會搞亂設計,因爲這是recyclerview項目佈局。 – user2923535

相關問題