सबसे पहले, मैं एंड्रॉइड विकास के लिए नया हूं इसलिए यह एक साधारण मुद्दा हो सकता है लेकिन मैं वास्तव में इसे काम नहीं कर सकता।
मेरे पास निम्न लेआउट है।
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:weightSum="1">
<FrameLayout android:id="@+id/navigationBarFrameLayout"
android:layout_width="fill_parent"
android:layout_height="44dp">
<ImageView android:id="@+id/navigationBar"
android:src="@drawable/navigationbar"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:scaleType="centerCrop"/>
<TextView android:text="TextView"
android:layout_width="fill_parent"
android:id="@+id/navigationBarTitle"
android:layout_height="fill_parent"
android:gravity="center_vertical|center_horizontal"
android:textColor="#000"
android:textSize="24sp"
android:textStyle="bold"
android:shadowColor="#fff"
android:shadowDy="-1"
android:shadowDx="0"
android:shadowRadius="1"/>
</FrameLayout>
<android.support.v4.view.ViewPager
android:layout_width="fill_parent"
android:id="@+id/DayPager"
android:layout_height="82dp">
</android.support.v4.view.ViewPager>
<RelativeLayout android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/relativeLayout">
<HorizontalScrollView android:id="@+id/ScheduleScrollView"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:fadingEdge="none"
android:layout_above="@+id/tabBarFrameLayout"
android:scrollbars="none"
android:background="#00ff00">
<RelativeLayout android:id="@+id/ScheduleRelativeLayout"
android:layout_height="fill_parent"
android:layout_width="wrap_content">
<RelativeLayout android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/ScheduleTimelineRelativeLayout">
</RelativeLayout>
<RelativeLayout android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/ScheduleConcertsRelativeLayout"
android:layout_below="@+id/ScheduleTimelineRelativeLayout"
android:background="#ff0000"
android:layout_weight="1">
</RelativeLayout>
</RelativeLayout>
</HorizontalScrollView>
<FrameLayout android:id="@+id/tabBarFrameLayout"
android:layout_height="49dp"
android:layout_width="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true">
<ImageView android:id="@+id/imageView1"
android:src="@drawable/tabbar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:scaleType="centerCrop"/>
</FrameLayout>
</RelativeLayout>
</LinearLayout>
आप जो देखते हैं वह यह है कि मेरे पास एक क्षैतिज स्क्रॉलव्यू (ScheduleScrollView
) है जिसमें दो सापेक्ष लेआउट हैं। ऊपर वाले में एक टाइमलाइन (ScheduleTimelineRelativeLayout
) है, जबकि निचले वाले (ScheduleConcertsRelativeLayout
) में प्रोग्रामेटिक रूप से बनाए गए कुछ बटन होंगे। क्षैतिज स्क्रॉलव्यू समयरेखा जितना चौड़ा है। मैं निचले सापेक्ष लेआउट को इसके माता-पिता को भरना चाहता हूं, जिसका अर्थ है कि यह क्षैतिज स्क्रॉलव्यू जितना चौड़ा होना चाहिए लेकिन यह काम नहीं करता है।
मैंने अपने प्रश्न का उत्तर खोजने का प्रयास करते हुए इस मंच को खोजा है। कुछ लोग android:layout_width="match_parent"
का उपयोग करने का सुझाव देते हैं, लेकिन ऐसा करते समय, मुझे निम्न त्रुटि मिलेगी:
त्रुटि: स्ट्रिंग प्रकारों की अनुमति नहीं है ('लेआउट_विड्थ' पर 'मैच_पैरेंट' मान के साथ)
अन्य लोग android:layout_weight="1"
को सेट करने का सुझाव देते हैं, लेकिन यह कुछ भी नहीं बदलता है (और सेटिंग मेरे स्वत: पूर्ण में उपलब्ध नहीं है, इसलिए ऐसा लगता है कि यह मौजूद नहीं है)
नीचे दिया गया स्क्रीनशॉट मेरी समस्या दिखाता है। हरा भाग मेरे क्षैतिज स्क्रॉलव्यू का पृष्ठभूमि रंग है। यह नहीं दिखना चाहिए। इसके बजाय निचले लाल हिस्से को किनारे पर जाना चाहिए।
अद्यतन करें:
अद्यतन करें:
लेआउट रखे जाने के बाद प्रोग्रामेटिक रूप से ScheduleConcertsRelativeLayout
की चौड़ाई और ऊंचाई सेट करना काम कर रहा है।
RelativeLayout timeline = (RelativeLayout) findViewById(R.id.ScheduleTimelineRelativeLayout);
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(timeline.getWidth(), scheduleConcertsRelativeLayout.getHeight());
params.setMargins(0, timeline.getHeight(), 0, 0);
scheduleConcertsRelativeLayout.setLayoutParams(params);
3 जवाब
लेआउट रखे जाने के बाद प्रोग्रामिक रूप से शेड्यूलकॉन्सर्ट रिलेटिव लयआउट की चौड़ाई और ऊंचाई सेट करना काम कर रहा है।
RelativeLayout timeline = (RelativeLayout) findViewById(R.id.ScheduleTimelineRelativeLayout);
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(timeline.getWidth(), scheduleConcertsRelativeLayout.getHeight());
params.setMargins(0, timeline.getHeight(), 0, 0);
scheduleConcertsRelativeLayout.setLayoutParams(params);
मुझे शायद यहाँ कुछ याद आ रहा है, लेकिन क्या आपने बदलने की कोशिश की:
<HorizontalScrollView android:id="@+id/ScheduleScrollView" android:layout_width="wrap_content" ... \>
प्रति
<HorizontalScrollView android:id="@+id/ScheduleScrollView" android:layout_width="fill_parent" ... \>
क्या आपने android:layout_width="fill_parent"
को ScheduleRelativeLayout
पर आजमाया था?
ScheduleRelativeLayout
में ("क्षैतिज स्क्रॉलव्यू" पहले से ही पूरी चौड़ाई तक फैला हुआ है)
android:layout_gravity="center_horizontal"
को ScheduleRelativeLayout
पर भी आजमाएं। एक ही समय में दोनों परिवर्तन करें।
android:layout_gravity="RIGHT"
ScheduleRelativeLayout
पर, अगर यह काम नहीं करता है तो मुझे नहीं पता :(
संबंधित सवाल
नए सवाल
java
जावा एक उच्च स्तरीय प्रोग्रामिंग भाषा है। इस टैग का उपयोग तब करें जब आपको भाषा का उपयोग करने या समझने में समस्या हो। इस टैग का उपयोग शायद ही कभी किया जाता है और इसका उपयोग अक्सर [वसंत], [वसंत-बूट], [जकार्ता-ई], [Android], [javafx], [हडूप], [श्रेणी] और [मावेन] के साथ किया जाता है।