2012-09-02 8 views
8

के भीतर टेक्स्ट व्यू की गतिशील ऊंचाई मुझे लाइब्रेरी संगतता (बिना प्रयास किए गए) का उपयोग करके ग्रिडलाउट का उपयोग करने में समस्या है। मैं android:layout_gravity="fill_horizontal" के बजाय app:layout_gravity="fill_horizontal" का उपयोग कर रहा हूं लेकिन TextView के अंदर सभी सामग्री प्रदर्शित नहीं होती है। सब कुछ प्रदर्शित करने के लिए, मुझे TextView "शीर्षक" की ऊंचाई निर्धारित करनी है, लेकिन मुझे गतिशील ऊंचाई चाहिए, सेट ऊंचाई नहीं।GridLayout

कोई विचार?

उत्तर

27

आपको टेक्स्ट व्यू के लिए layout_width="0dp" और layout_gravity="fill_horizontal" सेट करना होगा।

<TextView 
android:layout_width="0dp" 
app:layout_gravity="fill_horizontal" /> 

कृपया, यहाँ पूर्ण उदाहरण देखें: https://groups.google.com/d/msg/android-developers/OmH3VBwesOQ/ZOGR0SGvC3cJ या यहाँ: http://daniel-codes.blogspot.com/2012/01/gridlayout-view-clipping-issues.html

+0

** ऐप को नोट करना महत्वपूर्ण है: ** layout_gravity। मैं एक शैली में मूल्य स्थापित कर रहा था और यह लिंट ने मुझे चेतावनी नहीं दी, मुझे समस्या का पता लगाने में थोड़ी देर लग गई। – basilisk

+0

यह पिछली पंक्ति की चौड़ाई की चौड़ाई लेता है यदि यह दूसरी पंक्ति –

17

TextView का उपयोग GridLayout अंदर समस्याग्रस्त है, लेकिन वहाँ दोनों एक साथ उपयोग करने के लिए एक अच्छा तरीका है।

यह उदाहरण लेआउट कैसा दिखता है:

TextView inside GridLayout

और यह पूरा लेआउट एक्सएमएल है, महत्वपूर्ण लाइनों *** साथ चिह्नित हैं।

<?xml version="1.0" encoding="utf-8"?> 
<GridLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:columnCount="3"    * this example uses 3 columns 
    android:orientation="horizontal" > *** use "horizontal" 

<TextView        * just a normal view 
    android:layout_column="0" 
    android:layout_row="0" 
    android:background="#666666" 
    android:text="A" 
    android:textColor="#afafaf" 
    android:textSize="60sp" 
    android:textStyle="bold" /> 

<TextView        * this text will not be cut! 
    android:layout_width="0dp"   *** important: set width to 0dp 
    android:layout_height="wrap_content" 
    android:layout_column="1" 
    android:layout_columnSpan="2"  * colspan does also work with this 
    android:layout_gravity="fill_horizontal|bottom"  *** set to "fill*"! 
    android:layout_row="0" 
    android:text="This view has 2 columns. Lorem ipsum dolor sit amet, consetetur sadipscing elitr." 
    android:textColor="#666666" /> 

</GridLayout> 

अपनी आवश्यकताओं पर निर्भर करता है, यह भी इस संयोजन से काम करेगा:

android:layout_width="0dp" 
    android:layout_height="0dp" 
    android:layout_gravity="fill" 
    android:gravity="bottom" 

नोट आप की जरूरत नहीं है कि किसी भी इस काम करने के लिए android के अलावा अन्य नाम स्थान का उपयोग करें।

+0

में स्थित है, तो यह काम करता है। लेकिन मुझे उत्सुकता है कि आपने उस चाल को कैसे खोजा? ('लेआउट_विड्थ' के लिए 0 डीपी और' लेआउट_ग्रैविटी' के लिए गुण भरें) – Leo

+2

ग्रेट जॉब इसे ढूंढ रहा है। मेरे GridLayout के अंदर टेक्स्ट को सही ढंग से लपेटने में मेरा टेक्स्ट व्यू मुश्किल हो रहा था। इस मुद्दे के बारे में कई विषयों पर अन्य सभी सुझावों और उत्तरों का पालन किया लेकिन केवल आपका काम किया। आपका बहुत बहुत धन्यवाद! :) –

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