2011-06-08 23 views
11

Düzenlerimi daha fazla manzaraya uygun hale getirmeye çalışıyorum ve ortak bir modelim LinearLayout'u bazı düğmelerle eklemek (örn. Tamam | İptal) ve layout_weight için bir değer belirlemektir. boşluk eşit olarak dağıtılır. Sorun şu ki, bir telefon ya da (özellikle) bir tableti yatay modda kullandığınızda, gülünç görünüme sahip çok dilli düğmelerle sonuçlanırsınız. Düğmelerde ve doğrusal düzende maxWidth'u ayarlamayı denedim, ancak boşuna. Bunu başarmanın en kolay yolu ne olurdu? Yani, görünüm için maksimum bir yatay boyut ayarlayarak tüm genişliğe büyümez. Bir sürü farklı şey denedim ama hiç işe yaramadı.Görünümler için layout_weight ve maxWidth'i birleştirin

<LinearLayout 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:gravity="center_horizontal" 
     android:paddingLeft="10dp" 
     android:paddingRight="10dp" 
     android:paddingTop="6dp" 
     android:paddingBottom="6dp"> 
     <Button 
     android:id="@+id/button1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:enabled="false" 
     android:textStyle="bold" 
     android:text="@string/button1" /> 
     <Button 
     android:id="@+id/button2" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:text="@string/button2" /> 
    </LinearLayout> 

Not:

Aşağıda örnek bir düzen var ben manzara için yeni bir düzen dosyası oluşturabilir biliyorum ve orada büyü yapmak. Özel mizanpaj dosyalarını minimumda tutmak istiyorum ve umarım bunları gerektirmez.

cevap

0

Bunu test etmek için buraya Eclipse yok, ama RelativeLayout yerine, bir şey gibi kullanırsınız: Dediğim gibi

<RelativeLayout 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    > 
    <View 
    android:id="@+id/centerView" 
    android:layout_width="0dp" 
    android:layout_height="wrap_content" 
    android:layout_centerHorizontal="true" 
    android:layout_marginLeft="5dp" 
    android:layout_marginRight="5dp" 
    /> 
    <Button 
    android:id="@+id/button1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_toLeftOf="@id/centerView" 
    android:enabled="false" 
    android:textStyle="bold" 
    android:text="@string/button1" 
    /> 
    <Button 
    android:id="@+id/button2" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_toRightOf="@id/centerView" 
    android:text="@string/button2" 
    /> 
</RelativeLayout> 

, şu anda test edemez, ancak çalışabilir bu fikrin etrafında.

Bir yan notda, düzeniniz çok basit değilse, genellikle manzara için ayrı düzenler oluşturuyorum. Biraz daha fazla çalışma, ancak bu şekilde görüntülemeyi daha iyi hale getirebilirsiniz. Özellikle, daha büyük ekranları desteklemeyi planlıyorsanız.

+0

, bu şekilde nitelemek gelmez [hile] (http://stackoverflow.com/questions/6254303/android-programatically-select-gallary-image/6255224#6255224)? ;) – Aleadam

+0

Heh, hayır bu iyi. Ben RelativeLayout yukarıda sahip olduğum EditText yedik gerçeği dışında, bunu denemek ve oldukça iyi çalıştı. Ancak, umut verici görünüyor! – dmon

+0

@dmon Görüntülemelerin her birine 'android: layout_below = "@ id/textView1" '(veya id ne olursa olsun) eklemeniz gerekecek. RelativeLayout çok güçlü bir düzen. Tüm mümkün olanlara bir göz atın [here] (http://developer.android.com/reference/android/widget/RelativeLayout.LayoutParams.html). – Aleadam

1

Göreceli düzenlerle biraz karıştıktan sonra, this answer'u kullanarak karşılaştım. BTW

+0

Bu sayfadaki "LinearLayout'u uzat ve onMeasure işlevini geçersiz kıl" anlamına geldiğinizi varsayalım. Sayfanın daha yeni bir cevabı var: "Dış Düzeni Ekle" http://stackoverflow.com/questions/5875877/setting-a-maximum-width-on-a-viewgroup#23072507 çok daha basit (ama ben yapmadım) t testi). – Jerry101

-1
<RelativeLayout 
    android:id="@+id/rlMain" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:layout_marginLeft="12dp" 
    android:layout_marginRight="12dp"> 

    <View 
     android:id="@+id/vCenter" 
     android:layout_width="0dp" 
     android:layout_height="0dp" 
     android:layout_centerHorizontal="true" 
     android:layout_marginRight="5dp" 
     android:layout_marginLeft="5dp"/> 

    <Button 
    android:id="@+id/btnOne" 
    android:layout_width="wrap_content" 
    android:layout_height="40dp" 
    android:layout_toLeftOf="@id/vCenter" 
    <!--Change this for different widths--> 
    android:minWidth="200dp"/> 

    <Button 
    android:id="@+id/btnTwo" 
    android:layout_width="wrap_content" 
    android:layout_height="40dp" 
    android:layout_toRightOf="@id/vCenter" 
    <!--Change this for different widths--> 
    android:minWidth="200dp"/> 
</RelativeLayout> 
+0

cevabınıza küçük bir açıklama eklemek gelecekteki okuyucular için daha iyidir? – HaveNoDisplayName

İlgili konular