2011-06-01 34 views
37

Ben yüzdelerini ayarlamak için imkansız olduğunu ve onların yükseklik ölçeğine belli görüntülerin ağırlığını ayarlayabilirsiniz biliyoruz. Yapmaya çalıştığım şey, içinde bulunduğu düzene göre bir düzenin yüksekliğini belirtmektir. Javascipt Sadece bu yüzden benim anlamsız anlayabiliyorum, bu çok basitleştirilmiş bir sürümüdür Tabii buAndroid Yüzde Düzeni Yükseklik

<LinearLayout android:layout_height="fill_parent"> 
    <LinearLayout> 

    </LinearLayout> 
</LinearLayout> 

gibi bir şey var. Temel olarak, iç doğrusal dizilişin ana doğrusal yayınlamanın yaklaşık% 50'si olacak şekilde ayarlanmasını istiyorum.

Bunu yapmanın en iyi yolu nedir?

+0

Destek kitaplığını kullanarak, PercentRelativeLayout ve PercentFrameLayout öğelerini kullanabilirsiniz: https://juliengenoud.github.io/android-percent-support-lib-sample/ –

cevap

15

O birinin altında başka boş düzen eklemek ve aynı düzen ağırlığa sahip olmaya ikisini de ayarlayabilirsiniz. Her bir alanın% 50'sini almalılar.

+1

Ha, bir dakikalığına beni döverim. :) – kcoppock

8

Aynen söylediğin gibi, ağırlık öneririm. Yüzdeler (bunlar desteklenmez neden bilmiyorum) inanılmaz faydalı olacaktır, ama bunu yapabilirdi tek yön gibi pek geçerli:

<LinearLayout 
    android:layout_height="fill_parent" 
    android:layout_width="fill_parent" 
    > 
    <LinearLayout 
     android:layout_height="0dp" 
     android:layout_width="fill_parent" 
     android:layout_weight="1" 
     > 
    </LinearLayout> 
    <View 
     android:layout_height="0dp" 
     android:layout_width="fill_parent" 
     android:layout_weight="1" 
    /> 
</LinearLayout> 

paket yukarı götürecek boş Görünüm sahip olduğunu olma kalan boşluk. İdeal değil, ama aradığın şeyi yapıyor.

89

Android adı verilen bir özellik var: weightSum.

Sen android ayarlayabilirsiniz: weightSum = "2" ana linear_layout ve android: ağırlık = "1" iç linear_layout içinde.

beklendiği şekilde ağırlık özelliği çalışabilir fill_parent iç linear_layout ayarlamayı unutmayın.

Btw, ben denemedim taşıyamazsınız onun Inançları, ikinci görünümü eklemek sanmıyorum. :)

<LinearLayout 
    android:layout_height="fill_parent" 
    android:layout_width="fill_parent" 
    android:weightSum="2"> 

    <LinearLayout 
     android:layout_height="fill_parent" 
     android:layout_width="fill_parent" 
     android:layout_weight="1"> 
    </LinearLayout> 

</LinearLayout> 
+1

Kilo vermeyi unuttum, iyi fikir. – kcoppock

+1

Benzer durumlarda kullanmıştım ve işe yaradı. :) –

+3

kilo kullanırsanız, daha iyi performans için 0DP için (kullanımınıza bağlı olarak veya genişliğini) yüksekliğini koymak en iyisidir – shoren

7

android: "YOURVALUE" layout_weight = ContraintLayout tanıtılmasıyla

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical" > 

    <TextView 
     android:id="@+id/logTextBox" 
     android:layout_width="fill_parent" 
     android:layout_height="0dp" 
     android:layout_weight=".20" 
     android:maxLines="500" 
     android:scrollbars="vertical" 
     android:singleLine="false" 
     android:text="@string/logText" > 
    </TextView> 

</LinearLayout> 
+0

mükemmel çalışır, umarım farklı boyutlarda otomatik olarak ölçeklenir. – 89n3ur0n

+0

@ 89n3ur0n Yep, Aygıt boyutlarının% 'sidir. –

2

yüzde uygulamak için en iyi yoldur, bu Kılavuzu ile uygulamak mümkündür:

<?xml version="1.0" encoding="utf-8"?> 
<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="match_parent" 
    tools:context="com.example.eugene.test1.MainActivity"> 

    <TextView 
     android:id="@+id/textView" 
     android:layout_width="0dp" 
     android:layout_height="0dp" 
     android:background="#AAA" 
     android:text="TextView" 
     app:layout_constraintTop_toTopOf="parent" 
     app:layout_constraintStart_toStartOf="parent" 
     app:layout_constraintEnd_toEndOf="parent" 
     app:layout_constraintBottom_toTopOf="@+id/guideline" /> 

    <android.support.constraint.Guideline 
     android:id="@+id/guideline" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:orientation="horizontal" 
     app:layout_constraintGuide_percent="0.5" /> 

</android.support.constraint.ConstraintLayout> 

Result View

Bu yazının diğerlarını okuyabilirsiniz. Building interfaces with ConstraintLayout.