2011-06-01 18 views
37

मुझे पता है कि प्रतिशत निर्धारित करना असंभव है और आप अपनी ऊंचाइयों को मापने के लिए कुछ छवियों का वजन निर्धारित कर सकते हैं। जो मैं करने की कोशिश कर रहा हूं वह उस लेआउट के सापेक्ष लेआउट की ऊंचाई निर्दिष्ट करता है जो यह भीतर है। मूल रूप से मैं सिर्फ इतना तुम मेरी निरर्थक शब्दों को समझ सकता हूँ इसएंड्रॉइड प्रतिशत लेआउट ऊंचाई

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

    </LinearLayout> 
</LinearLayout> 

बेशक यह एक बहुत ही सरलीकृत संस्करण है की तरह कुछ है,। मूल रूप से मैं मुख्य लाइनरलेआउट के लगभग 50% होने के लिए आंतरिक लाइनरलेआउट सेट करना चाहता हूं।

ऐसा करने का सबसे अच्छा तरीका क्या है?

+0

समर्थन लाइब्रेरी का उपयोग करके, अब आप पर्सेंटरेलेटिव लेआउट और पर्सेंटफ्रेम लेआउट का उपयोग कर सकते हैं: https://juliengenoud.github.io/android-percent-support-lib-sample/ –

उत्तर

15

आप उस के नीचे एक और खाली लेआउट जोड़ सकते हैं और दोनों को एक ही लेआउट वजन रखने के लिए सेट कर सकते हैं। उन्हें प्रत्येक स्थान का 50% प्राप्त करना चाहिए।

+1

हा, मुझे एक मिनट तक हराया। :) – kcoppock

8

जैसा आपने कहा था, मैं वजन की सिफारिश करता हूं। प्रतिशत अविश्वसनीय रूप से उपयोगी (पता नहीं है इसलिए वे समर्थित नहीं हैं) होगा, लेकिन एक तरह से आप यह कर सकता है की तरह तो है:

<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> 

टेकअवे जा रहा है आपको लगता है कि ऊपर ले जाएगा एक खाली दृश्य है शेष जगह आदर्श नहीं है, लेकिन यह वही करता है जो आप खोज रहे हैं।

89

एंड्रॉइड नामक एक विशेषता है: weightSum।

आप एंड्रॉइड सेट कर सकते हैं: parentsum = "2" पैरेंट लाइनर_लेआउट और एंड्रॉइड में: वजन = "1" आंतरिक linear_layout में।

fill_parent में आंतरिक linear_layout सेट करना याद रखें ताकि वजन विशेषता अपेक्षित रूप से काम कर सके।

बीटीडब्ल्यू, मुझे लगता है कि यह दूसरा दृश्य जोड़ने के लिए अपनी नीरस नहीं है, मैंने कोशिश नहीं की है। :)

<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

मैं वजन के बारे में भूल गया, अच्छा विचार। – kcoppock

+1

मैंने इसे इसी तरह के मामलों में उपयोग किया है और यह काम करता है। :) –

+3

मेरे लिए काम नहीं किया – shoren

7

एंड्रॉयड: "। YOURVALUE" layout_weight = प्रतिशत

<?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

पूरी तरह से काम करता है, मुझे आशा है कि यह विभिन्न आकारों पर स्वचालित रूप से अच्छी तरह से स्केल करेगा। – 89n3ur0n

+0

@ 89n3ur0n हाँ, यह डिवाइस आयामों का% है। –

2
ContraintLayout की शुरूआत के साथ

में लागू करने के लिए सबसे अच्छा तरीका है, यह दिशा-निर्देश के साथ लागू करने के लिए संभव है:

<?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

आप इस आलेख में Building interfaces with ConstraintLayout और अधिक पढ़ सकते हैं।

संबंधित मुद्दे