2012-03-05 10 views
6

में लेआउट_वेट का उपयोग करता है मेरे पास एक लेआउट है जो मैं TableRows को TableLayout में गतिशील रूप से जोड़ने के लिए फुला रहा हूं। मैं कॉलम को वांछित चौड़ाई तक खींचने के लिए लेआउट_वेट का उपयोग करता हूं।सेंटर व्यू (चेकबॉक्स) जो टेबलरो कॉलम

तालिका ScrollView के अंदर रखी गई है, इसलिए मैं जेनरेट की गई पंक्तियों के बीच स्क्रॉल कर सकता हूं। मेरे पास एक टेबल हेडर भी है जिसे मैंने शीर्ष पर LinearLayout में रखा है। मैंने ऐसा इसलिए किया क्योंकि मैं हेडर स्क्रॉल नहीं करना चाहता हूं। यही कारण है कि मैं layout_weight के बजाय layout_span का उपयोग नहीं करता हूं।

समस्या TableRow में दृश्य में से एक एक CheckBox है कि है और मैं इसे केंद्रित करना चाहते हैं, लेकिन जब से layout_width विशेषता है '0' मैं layout_gravity = "केन्द्र" यह केंद्र के लिए उपयोग नहीं कर सकते।

यहाँ xml फ़ाइल है: enter image description here

* रंग प्रतिनिधित्ववादी के लिए कर रहे हैं: CheckBox not centered

यह मैं इसे कैसे देखने के लिए चाहते हैं:

<?xml version="1.0" encoding="utf-8"?> 
<TableRow xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/order_form_line_TableRow" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" > 

    <TextView 
     android:id="@+id/order_table_row_product_description_TextView" 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_vertical" 
     android:layout_weight="0.22" 
     android:maxLines="2" 
     android:textSize="18sp" /> 

    <CheckBox 
     android:id="@+id/order_table_row_present_CheckBox" 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center" 
     android:layout_weight="0.08" /> 

    <EditText 
     android:id="@+id/order_table_row_facings_EditText" 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_weight="0.10" 
     android:inputType="number" /> 

    <EditText 
     android:id="@+id/order_table_row_free_cu_given_EditText" 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_weight="0.10" 
     android:inputType="number" /> 

    <EditText 
     android:id="@+id/order_table_row_order_quantity_EditText" 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_weight="0.10" 
     android:inputType="number" /> 

    <EditText 
     android:id="@+id/order_table_row_free_order_EditText" 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_weight="0.10" 
     android:inputType="number" /> 

    <Spinner 
     android:id="@+id/order_table_row_wholesaler_Spinner" 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_vertical" 
     android:layout_weight="0.15" /> 

    <EditText 
     android:id="@+id/order_table_row_delivery_date_EditText" 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_weight="0.15" 
     android:ellipsize="end" 
     android:inputType="date" 
     android:singleLine="true" /> 

</TableRow> 

यह कि यह कैसा दिखता है केवल उद्देश्य उन्हें अनदेखा किया जा सकता है।

अगर कोई मदद कर सकता है तो मैं इसकी बहुत सराहना करता हूं। आप

उत्तर

21

इस कोशिश धन्यवाद:

<LinearLayout 
     android:id="@+id/linearLayout1" 
     android:layout_width="wrap_content" 
     android:gravity="center" 
     android:layout_weight="0.08" 
     android:layout_height="fill_parent" > 

    <CheckBox 
     android:id="@+id/order_table_row_present_CheckBox" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     /> 
    </LinearLayout> 
+1

धन्यवाद। तुमने मुझे सही रास्ते पर सेट किया। मैं लेआउट_विड्थ = "0 डीपी" के साथ एक रिलेटिव लेआउट का उपयोग कर समाप्त हुआ क्योंकि 0-आधारित चौड़ाई आवश्यक थी और रिलेवेटलाइट लाइनरलाइट से अधिक हल्का वजन है। ऐसा लगता है कि प्रदर्शन पर इसका कोई प्रभाव नहीं पड़ता है। धन्यवाद फिर से – Bandreid

+3

यह काम करता प्रतीत होता है, लेकिन दूसरे लेआउट में चेकबॉक्स को केवल एक ही कामकाजी समाधान क्यों encapsulating है? ऐसा करने के लिए उचित तरीके से एक हैक की तरह लगता है। –

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