2016-11-21 58 views
0

我想建立這樣的佈局問題相匹配的寬度和高度

enter image description here

但我得到這樣的:在位置(地圖按鈕將是理想的高度和寬度,但TextView的不企及的高度)

enter image description here

我的位置是TextView,我的目標是EditText

我希望TextViewEditText是相同的寬度,而MAP按鈕保持「正方形」。

如何獲得文字高度以匹配並製作方形貼圖按鈕?

這裏是我的佈局

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
       xmlns:tools="http://schemas.android.com/tools" 
       android:id="@+id/fragment_details" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       tools:context="com.mycompany.controller.DetailsFragment"> 


    <ScrollView 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_below="@id/viewStatus" 
     android:layout_marginTop="5dp"> 


     <LinearLayout 
      android:id="@+id/scrollViewDetails" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:orientation="vertical"> 


      <!-- LOCATION --> 
      <TextView 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_marginTop="10dp" 
       android:text="LOCATION" 
       android:textColor="@color/COLOR_BLUE" 
       android:textSize="24sp"/> 

      <LinearLayout 
       android:id="@+id/layoutLocation" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:orientation="horizontal"> 

       <TextView 
        android:id="@+id/tvLocation" 
        android:layout_width="wrap_content" 
        android:layout_height="match_parent" 
        android:layout_marginTop="10dp" 
        android:layout_weight=".8" 
        android:background="@color/COLOR_LIGHT_GREY" 
        android:text="123 MAIN ST., CHATTANOOGA TN 37404" 
        android:textSize="24sp"/> 

       <Button 
        android:id="@+id/btnMapLocation" 
        android:layout_width="wrap_content" 
        android:layout_height="match_parent" 
        android:layout_weight=".2" 
        android:background="@color/COLOR_BLUE" 
        android:text="MAP" 
        android:textColor="@color/COLOR_WHITE"/> 
      </LinearLayout> 

      <!-- DESTINATION --> 

      <TextView 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_marginTop="10dp" 
       android:text="DESTINATION" 
       android:textColor="@color/COLOR_BLUE" 
       android:textSize="24sp"/> 

      <LinearLayout 
       android:id="@+id/layoutDestination" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:orientation="horizontal"> 

       <EditText 
        android:id="@+id/editDestination" 
        android:layout_width="wrap_content" 
        android:layout_height="match_parent" 
        android:layout_weight=".8" 
        android:ems="10" 
        android:inputType="textMultiLine" 
        android:text="407 Broad St., Anywhere ST 00000"/> 


       <Button 
        android:id="@+id/btnMapDestination" 
        android:layout_width="wrap_content" 
        android:layout_height="match_parent" 
        android:layout_weight=".2" 
        android:background="@color/COLOR_BLUE" 
        android:text="MAP" 
        android:textColor="@color/COLOR_WHITE"/> 
      </LinearLayout> 


     </LinearLayout> 
    </ScrollView> 

</RelativeLayout> 
+0

使用加權將永遠不能保證事情是正方形,點是他們伸展到與佈局方向(在這種情況下是水平方向)相關的特定大小。如果你想要一些東西是正方形的,你需要明確地設置寬度和高度,或者當繪製視圖並設置寬度匹配時,你需要獲得測量的高度。 – zgc7009

回答

2

我沒有在你的代碼稍加修改檢查它!

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
      xmlns:tools="http://schemas.android.com/tools" 
      android:id="@+id/fragment_details" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      > 


<ScrollView 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 

    android:layout_marginTop="5dp"> 


    <LinearLayout 
     android:id="@+id/scrollViewDetails" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:orientation="vertical"> 


     <!-- LOCATION --> 
     <TextView 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_marginTop="10dp" 
      android:text="LOCATION" 

      android:textSize="24sp"/> 

     <LinearLayout 
      android:id="@+id/layoutLocation" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:orientation="horizontal"> 

      <TextView 
       android:id="@+id/searchText" 
       android:text="Search text here" 
       android:layout_weight="0.8" 
       android:layout_height="wrap_content" 
       android:layout_width="wrap_content" 
       android:background="#c8c8c8" 
       /> 

      <Button 
       android:id="@+id/searchButton" 
       android:text="MAP" 
       android:layout_weight="0.2" 

       android:layout_alignParentRight="true" 
       android:layout_height="wrap_content" 
       android:layout_width="wrap_content" 
       /> 
      /> 
     </LinearLayout> 

     <!-- DESTINATION --> 

     <TextView 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_marginTop="10dp" 
      android:text="DESTINATION" 

      android:textSize="24sp"/> 

     <LinearLayout 
      android:id="@+id/layoutLocation" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:orientation="horizontal"> 

      <EditText 
       android:id="@+id/searchText" 
       android:text="Search text" 
       android:layout_weight="0.8" 
       android:layout_height="wrap_content" 
       android:layout_width="wrap_content" 
       /> 

      <Button 
       android:id="@+id/searchButton" 
       android:text="MAP" 
       android:layout_weight="0.2" 
       android:layout_alignParentRight="true" 
       android:layout_height="wrap_content" 
       android:layout_width="wrap_content" 
       /> 
     </LinearLayout> 

    </LinearLayout> 
</ScrollView> 

</RelativeLayout> 
0

由於您使用android:layout_weight,設置android:layout_width="0dp"

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
       xmlns:tools="http://schemas.android.com/tools" 
       android:id="@+id/fragment_details" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       tools:context="com.mycompany.controller.DetailsFragment"> 


    <ScrollView 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_below="@id/viewStatus" 
     android:layout_marginTop="5dp"> 


     <LinearLayout 
      android:id="@+id/scrollViewDetails" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:orientation="vertical"> 


      <!-- LOCATION --> 
      <TextView 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_marginTop="10dp" 
       android:text="LOCATION" 
       android:textColor="@color/COLOR_BLUE" 
       android:textSize="24sp"/> 

      <LinearLayout 
       android:id="@+id/layoutLocation" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:orientation="horizontal"> 

       <TextView 
        android:id="@+id/tvLocation" 
        android:layout_width="0dp" 
        android:layout_height="match_parent" 
        android:layout_marginTop="10dp" 
        android:layout_weight=".8" 
        android:background="@color/COLOR_LIGHT_GREY" 
        android:text="123 MAIN ST., CHATTANOOGA TN 37404" 
        android:textSize="24sp"/> 

       <Button 
        android:id="@+id/btnMapLocation" 
        android:layout_width="0dp" 
        android:layout_height="match_parent" 
        android:layout_weight=".2" 
        android:background="@color/COLOR_BLUE" 
        android:text="MAP" 
        android:textColor="@color/COLOR_WHITE"/> 
      </LinearLayout> 

      <!-- DESTINATION --> 

      <TextView 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_marginTop="10dp" 
       android:text="DESTINATION" 
       android:textColor="@color/COLOR_BLUE" 
       android:textSize="24sp"/> 

      <LinearLayout 
       android:id="@+id/layoutDestination" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:orientation="horizontal"> 

       <EditText 
        android:id="@+id/editDestination" 
        android:layout_width="0dp" 
        android:layout_height="match_parent" 
        android:layout_weight=".8" 
        android:ems="10" 
        android:inputType="textMultiLine" 
        android:text="407 Broad St., Anywhere ST 00000"/> 


       <Button 
        android:id="@+id/btnMapDestination" 
        android:layout_width="0dp" 
        android:layout_height="match_parent" 
        android:layout_weight=".2" 
        android:background="@color/COLOR_BLUE" 
        android:text="MAP" 
        android:textColor="@color/COLOR_WHITE"/> 
      </LinearLayout> 


     </LinearLayout> 
    </ScrollView> 

</RelativeLayout>