2011-09-13 14 views
22

, ben resmin yüksekliğini maç için düğmelerin sütunu istiyorum ama aynı zamanda düğmeleri sütun için bir minimum yükseklik girmesini istiyoruz.MinHeight bir şey yapar mı? ekli resimde

Bu doğru resmin yüksekliğine eşit, ancak MinHeight saygı duymayan ve düğmeler aşağı smoosh edecektir.

Ben düğmeleri sütun için bu özellikleri ayarlıyorum:

<LinearLayout 
    ... 
    android:layout_alignTop="@+id/image" 
    android:layout_alignBottom="@+id/image" 
    android:minHeight="150dp" 
    > 

enter image description here

cevap

38

Bütün tam gereksinimlerine bilmiyorum, ama oldukça çok gibi başka bir katmanla bu çözebilir görünüyor senin diyagramın içinde. Daha sonra bir dış düzenine minHeight ve iç sadece fill_parent/match_parent ayarlayın. Belki böyle bir şey:

<LinearLayout 
    android:orientation="horizontal" 
    android:layout_height="wrap_content" 
    android:layout_width="wrap_content" 
    android:minHeight="150dp"> 
    <LinearLayout 
     android:orientation="vertical" 
     android:layout_height="fill_parent" 
     android:layout_width="wrap_content"> 
    </LinearLayout> 
    <ImageView /> 
</LinearLayout> 
+2

Ama unutmayın: Birçok düzenlere kullanırsanız uygulama başlangıçta durgun hale gelebilir. Görünüşe göre, başlangıçta başlangıç ​​için gerekli olan bellek yeniden serbest bırakılıncaya kadar uygulamanızı yavaşlatan çöp toplama işlemlerini tetikleyebilecek düzenler çok fazla belleğe ihtiyaç duyuyor. Ve evet, bu problemim var ve şu an RelativLayout'a geçmeye çalışıyorum. – Martin

6

Zor soruya o TextView.setMinHeight çağırır çünkü - ama o zaman bir TextView kullanmıyorsunuz.

Yani genel olarak android:minHeight gerçekten bir şey ama senin özel durumda işe yarar. Benim diğer cevap halen geçerli olmasına karşın

+5

Bu, sorulan orijinal soruya iyi bir cevaptı. Muhtemelen kullanıcının nihai hedeflerine ulaşmasına yardımcı olmaz, ancak yine de ilginç buldum. – jwir3

+1

Bu tamamen yanlış. Görünümler için genel olarak MinHeight geçerli bir özelliktir. Onun programatic eşdeğerdir https://developer.android.com/reference/android/view/View.html#setMinimumHeight(int) özniteliği depolanır anlamına gelmez XML geçerlidir Yani –

+1

@ David Liu görünüm. Ve nitelik görünümünde saklanır bile o anlamına gelmez aslında etkin düzen yöneticisi tarafından kullanılır edilir. Ve daha da eğlenceli hale getirmek için: bir 'TextView.setMinHeight' ve bir 'View.setMinimumHeight 'var – Martin

0

, bugünlerde biz ConstraintLayout yarar var. Ben orijinal afiş çoktan bu soruna geçmiş kazanılmış, ancak gelecek kullanıcıların uğruna gelmiştir eminim: Eğer ViewGroup s ekstra katmanı olmadan aynı sonucu elde edebilirsiniz. Böyle bir şey: büyük resimler işlemek için ImageView için

app:layout_constrainedWidth="true" 

, ama onu test etmedim:

<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:minHeight="150dp"> 

    <Button 
     android:id="@+id/button1" 
     android:layout_width="wrap_content" 
     android:layout_height="0dp" 
     android:text="Button1" 
     app:layout_constraintBottom_toTopOf="@+id/button2" 
     app:layout_constraintStart_toStartOf="parent" 
     app:layout_constraintTop_toTopOf="parent" /> 

    <Button 
     android:id="@+id/button2" 
     android:layout_width="wrap_content" 
     android:layout_height="0dp" 
     android:text="Button2" 
     app:layout_constraintBottom_toTopOf="@+id/button3" 
     app:layout_constraintStart_toStartOf="parent" 
     app:layout_constraintTop_toBottomOf="@+id/button1" /> 

    <Button 
     android:id="@+id/button3" 
     android:layout_width="wrap_content" 
     android:layout_height="0dp" 
     android:text="Button3" 
     app:layout_constraintBottom_toBottomOf="parent" 
     app:layout_constraintStart_toStartOf="parent" 
     app:layout_constraintTop_toBottomOf="@+id/button2" /> 

    <android.support.constraint.Barrier 
     android:id="@+id/barrier" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     app:barrierDirection="end" 
     app:constraint_referenced_ids="button1,button2,button3" /> 

    <ImageView 
     android:id="@+id/image" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     app:layout_constraintBottom_toBottomOf="parent" 
     app:layout_constraintEnd_toEndOf="parent" 
     app:layout_constraintStart_toStartOf="@id/barrier" 
     app:layout_constraintTop_toTopOf="parent" /> 
</android.support.constraint.ConstraintLayout> 

Muhtemelen gibi bir şey gerekebilir.