मेरे पास एक LinearLayout
अंदर है ScrollView
जो है android:layout_height="fill_parent"
, लेकिन यह पूरी ऊंचाई तक नहीं फैला है ScrollView
। मेरा लेआउट कुछ इस तरह दिखता है:
level layout layout_width layout_height
1 LinearLayout fill_parent fill_parent
2 LinearLayout fill_parent wrap_content
3 (some irrelevant stuff)
2 ScrollView fill_parent fill_parent <-- this expands full height
3 LinearLayout fill_parent fill_parent <-- this does not (has orientation=vertical)
(following stuff probably are irrelevant, but just to be sure:)
4 TextView fill_parent fill_parent
4 LinearLayout fill_parent wrap_content
मैं देख सकता हूं कि ग्रहण LinearLayout
की ScrollView
वजह से पूर्ण ऊंचाई का विस्तार नहीं होता है Android Layout Editor
, अगर मैं ScrollView
(आउटलाइन पैनल में) का चयन करता हूं तो इसे लाल सीमा के साथ हाइलाइट किया जाता है जो स्क्रीन को नीचे तक भरता है लेकिन जब मैं LinearLayout
इसके हाइलाइट का चयन करता हूं स्क्रीन के नीचे तक विस्तार नहीं करता है। मैं ऐसा करने के लिए कैसे प्राप्त कर सकता हूं?
मैं जो प्रभाव हासिल करने की कोशिश कर रहा हूं, उसमें कुछ पाठ और उसके नीचे एक बटन है ( LinearLayout
स्तर 4 में अंदर सिर्फ एक बटन है)। स्क्रॉलबार की आवश्यकता के लिए पाठ काफी बड़ा हो सकता है, जिस स्थिति में मैं चाहता हूं कि उपयोगकर्ता को बटन देखने के लिए नीचे स्क्रॉल करना पड़े। यदि स्क्रॉल पट्टी के लिए पाठ पर्याप्त बड़ा नहीं है, तो मैं चाहता हूं कि LinearLayout
बटन स्क्रीन के निचले हिस्से से चिपके रहे।
पहले तो मुझे लगा कि मुझे पूरा XML पोस्ट नहीं करना चाहिए क्योंकि यह आमतौर पर एक प्रश्न में कोड का एक बड़ा हिस्सा देखने के लिए एक मोड़ है। हालांकि, ऐसा लगता है कि यह आवश्यक हो सकता है, इसलिए यहां पूर्ण लेआउट है।
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
xmlns:android="http://schemas.android.com/apk/res/android">
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:id="@+id/video_layout"
android:focusable="true"
style="@style/VideoLayout">
<FrameLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:foreground="@android:drawable/ic_media_play"
android:foregroundGravity="center">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/video_thumb"
android:padding="5dip"
android:background="#454545"/>
</FrameLayout>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:focusable="true"
style="@style/VideoTitle"
android:id="@+id/video_title"
android:layout_gravity="center"
android:layout_weight="1"/>
</LinearLayout>
<ScrollView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1">
<!-- this ScrollView expands the full height of the screen.
However, the next LinearLayout does not expand the full height of the ScrollView -->
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1"
android:layout_gravity="fill"
android:orientation="vertical"
android:id="@+id/info_layout">
<TextView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/info_body"
style="@style/InfoText"/>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
style="@android:style/ButtonBar">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_weight="1"
android:text="@string/button_readmore"
android:id="@+id/btn_read_more"/>
</LinearLayout>
</LinearLayout>
</ScrollView>
</LinearLayout>
फिलहाल मैंने android:layout_gravity="bottom"
समस्याग्रस्त का सहारा लिया है LinearLayout
, जो कि स्क्रीन के नीचे बटन को चिपका देता है , चाहे कुछ भी हो। लेकिन यह भी पाठ को स्क्रीन के निचले हिस्से में चिपका देता है, जो कि वास्तव में मेरे बाद नहीं था।
अद्यतन: खरोंच, android:layout_gravity="bottom"
जो ScrollView
करने में असमर्थ, अच्छी तरह से, स्क्रॉल। अन्य विचार?
android:weight
।