2016-04-03 19 views
0

Ben android bir etkinlik için benim düzenini tanımlamak için aşağıdaki xml dosyası vardır:Neden bir metin görünümü uzunluğu android diğer öğelerin konumunu belirler?

<GridLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 

    android:useDefaultMargins="true" 
    android:alignmentMode="alignBounds" 
    android:columnOrderPreserved="false" 

    android:columnCount="10" 
    android:background="#cccccc" 
    > 

    <TextView 
     android:text="@string/new_title" 
     android:textSize="32dip" 
     android:layout_columnSpan="10" 
     android:layout_gravity="center_horizontal" 
     android:id="@+id/textTitleEdit" 
     android:layout_row="0" 
     android:layout_column="0" /> 

    <TextView 
     android:text="@string/new_descr" 
     android:textSize="16dip" 
     android:layout_columnSpan="8" 
     android:layout_gravity="left" 
     android:id="@+id/textSubTitleEdit" 
     android:layout_row="1" 
     android:layout_column="0" /> 

    <TextView 
     android:text="@string/new_name" 
     android:layout_gravity="right" 
     android:layout_row="2" 
     android:layout_column="0" 
     /> 
    <EditText 
     android:ems="7" 
     android:singleLine="true" 
     android:inputType="textCapWords" 
     android:id="@+id/new_name" 
     android:layout_row="2" 
     android:layout_column="1" /> 

    <ImageButton 
     android:src="@mipmap/ic_backspace_black_24dp" 
     android:id="@+id/clear_line" 
     android:layout_row="2" 
     android:minHeight="15dp" 
     android:minWidth="15dp" 
     android:maxHeight="15dp" 
     android:maxWidth="15dp" 
     /> 

    <ImageButton 
     android:src="@mipmap/ic_search_black_24dp" 
     android:id="@+id/new_search" 
     android:layout_row="2" 
     android:minHeight="15dp" 
     android:minWidth="15dp" 
     android:maxHeight="15dp" 
     android:maxWidth="15dp" 
     /> 


    _____________ 

    <TextView 
     android:text="@string/new_label" 
     android:layout_gravity="right" 
     android:layout_row="3" 
     android:layout_column="0" /> 



    <EditText 
     android:ems="7" 
     android:singleLine="true" 
     android:inputType="textCapWords" 
     android:id="@+id/new_label" 
     android:layout_row="3" 
     android:layout_column="1" /> 

    ______ 

    <TextView 
     android:layout_column="0" 
     android:text="@string/new_price" 
     android:layout_gravity="right" 
     /> 

    <EditText 
     android:ems="7" 
     android:singleLine="true" 
     android:id="@+id/new_price" 
     android:inputType="numberDecimal" 
     android:layout_row="4" 
     android:layout_column="1" /> 



    <TextView 
     android:layout_column="0" 
     android:text="@string/new_offset" 
     android:layout_gravity="right" 
     android:layout_row="6" /> 

    <EditText 
     android:ems="7" 
     android:singleLine="true" 
     android:id="@+id/new_offset" 
     android:inputType="number" 
     android:layout_row="6" 
     android:layout_column="1" /> 

    <SeekBar 
     android:layout_row="7" 
     android:layout_width="150dp" 
     android:max="10" 
     android:id="@+id/seek_offset" 
     android:layout_column="1" 
     style="@android:style/Widget.Holo.SeekBar"/> 

    <Space 
     android:layout_row="4" 
     android:layout_column="0" 
     android:layout_columnSpan="3" 
     android:layout_gravity="fill" 
     /> 



    <Button 
     android:text="Cancel" 
     android:id="@+id/new_cancel" 
     android:background="@color/colorPrimaryDark" 
     android:layout_row="10" 
     android:layout_column="0" 
     /> 
    <Button 
     android:text="Ok" 
     android:id="@+id/new_ok" 
     android:background="@color/colorPrimaryLight" 
     android:layout_row="10" 
     android:layout_column="8" 
     /> 
</GridLayout> 

Bu iyi çalışır ve bu xml nonesense tanımlanmış olabilir ancak ben (aşağıdaki resimdeki gibi bir şey görmek veya yanlış bir şey, Android'de bir başlangıç ​​acemi ...) olduğum gibi

enter image description here Ancak

, bazı diğer aktivitede bu düzeni yeniden ve daha kısa metin id textSubTitleEdit ile textView metnini değiştirmek am . Sonuç olarak, Ok -Button sola kaydırılır ve artık sağ alt köşedeki yerine yerleştirilir.

Yerleşimimde bir sorun mu var? TextView'un uzunluğu bir tuşun konumunu nasıl etkiler?

+0

Ne don' Görünümler yerine gridview yerine gridview için ayrı bir düzen tanımlarsınız. –

+0

Önermek istediğinizden emin değilim ... – Alex

cevap

0

Burada sorun, tüm görünümlerinizi düzende yerleştirmek için GridLayout kullanıyor olmanızdır.

aşağıdaki gibi bir RelativeLayout senin GridLayout yukarıda eklemeyi düşünün ve orada düğmesini hareket edebilir, senin düğmeleri altta, ekranın her tarafta bir sopa isterseniz:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:background="#cccccc" 
      > 

<GridLayout 
    android:id="@+id/grid" 
    android:layout_margin="8dp" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_alignParentTop="true" 
    android:layout_above="@+id/new_cancel" 
    android:alignmentMode="alignBounds" 
    android:columnCount="10" 
    android:columnOrderPreserved="false" 
    android:useDefaultMargins="true"> 

    <TextView 
     android:id="@+id/textTitleEdit" 
     android:layout_column="0" 
     android:layout_columnSpan="10" 
     android:layout_gravity="center_horizontal" 
     android:layout_row="0" 
     android:text="@string/new_title" 
     android:textSize="32dip"/> 

    .... 

    <SeekBar 
     android:id="@+id/seek_offset" 
     style="@android:style/Widget.Holo.SeekBar" 
     android:layout_width="150dp" 
     android:layout_column="1" 
     android:layout_row="7" 
     android:max="10"/> 

    <Space 
     android:layout_column="0" 
     android:layout_columnSpan="3" 
     android:layout_gravity="fill" 
     android:layout_row="4" 
     /> 

</GridLayout> 

<Button 
    android:id="@+id/new_cancel" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentBottom="true" 
    android:layout_alignParentStart="true" 
    android:background="@color/colorPrimaryDark" 
    android:text="Cancel" 
    /> 

<Button 
    android:id="@+id/new_ok" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentBottom="true" 
    android:layout_alignParentEnd="true" 
    android:background="@color/colorPrimaryLight" 
    android:text="Ok" 
    /> 

</RelativeLayout> 
+0

Ama şimdi diğer tüm metin alanları vb sola kaydırılır. Örneğin, "Etiket" metni doğrudan sol taraftadır ve güzel görünmüyor ... – Alex

+0

GridLayout'unuza bir kenar boşluğu ekleyebilirsiniz. Bir örnek için kodu güncelleyeceğim – malrok44

İlgili konular