मैं एंड्रॉइड के भयानक लेआउट सिस्टम से जूझ रहा हूं। मैं स्क्रीन भरने के लिए एक टेबल प्राप्त करने की कोशिश कर रहा हूं (सरल दाएं?) लेकिन यह हास्यास्पद रूप से कठिन है।स्क्रीन भरने के लिए मुझे एंड्रॉइड टेबललाउट कैसे मिल सकता है?
<?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_height="fill_parent" android:layout_width="fill_parent">
<TableRow android:layout_height="fill_parent" android:layout_width="fill_parent" android:layout_weight="1">
<Button android:text="A" android:layout_width="wrap_content" android:layout_height="fill_parent" android:layout_weight="1"/>
<Button android:text="B" android:layout_width="wrap_content" android:layout_height="fill_parent" android:layout_weight="1"/>
</TableRow>
<TableRow android:layout_height="fill_parent" android:layout_width="fill_parent" android:layout_weight="1">
<Button android:text="C" android:layout_width="wrap_content" android:layout_height="fill_parent" android:layout_weight="1"/>
<Button android:text="D" android:layout_width="wrap_content" android:layout_height="fill_parent" android:layout_weight="1"/>
</TableRow>
हालांकि मैं यह जावा में काम करने के लिए नहीं मिल सकता है:
मैं इसे इस तरह एक्सएमएल में किसी भी तरह काम करने के लिए मिला है। मैंने लेआउटपैम के दस लाख संयोजनों की कोशिश की है, लेकिन कुछ भी काम नहीं करता है।
table = new TableLayout(this);
// Java. You suck.
TableLayout.LayoutParams lp = new TableLayout.LayoutParams(
ViewGroup.LayoutParams.FILL_PARENT,
ViewGroup.LayoutParams.FILL_PARENT);
table.setLayoutParams(lp); // This line has no effect! WHYYYY?!
table.setStretchAllColumns(true);
for (int r = 0; r < 2; ++r)
{
TableRow row = new TableRow(this);
for (int c = 0; c < 2; ++c)
{
Button btn = new Button(this);
btn.setText("A");
row.addView(btn);
}
table.addView(row);
}
जाहिर Android दस्तावेज़ कोई मदद नहीं है: यह सबसे अच्छा परिणाम रहा है जो केवल स्क्रीन की चौड़ाई, ऊंचाई नहीं भरता है। क्या किसी के भी पास कोई सुझाव है?
मुझे नहीं लगता कि आप बहुत से लोगों को अपने प्रश्न में उस नकारात्मकता के साथ उत्तर देने के लिए दौड़ने जा रहे हैं। –
हाँ मुझे पता है। जब आप उम्र के लिए संघर्ष करते हैं तो यह वास्तव में निराशाजनक होता है कि एक साधारण कार्य क्या होना चाहिए।'एंड्रॉइड के मंद लेआउट सिस्टम' – Timmmm
+1 यह नहीं है - मैंने कोशिश की है (कई तरीकों से!)। इसके अतिरिक्त एंड्रॉइड डॉक्स में यह कहता है: "टेबललेआउट के बच्चे लेआउट_विड्थ विशेषता निर्दिष्ट नहीं कर सकते हैं। चौड़ाई हमेशा FILL_PARENT होती है। हालांकि, लेआउट_हेइट विशेषता को बच्चे द्वारा परिभाषित किया जा सकता है; डिफ़ॉल्ट मान WRAP_CONTENT है। यदि बच्चा एक टेबलरो है , तो ऊंचाई हमेशा WRAP_CONTENT है। " और "तालिका तालिका के बच्चों को XML फ़ाइल में layout_width और layout_height विशेषताओं को निर्दिष्ट करने की आवश्यकता नहीं है। TableRow हमेशा उन मानों को लागू करता है जो क्रमशः FILL_PARENT और WRAP_CONTENT हो।" –