2013-06-19 3 views
5

भर नहीं रहा है, मैं Yuri Kanivets's WheelView control का उपयोग कर रहा हूं और मुझे लगता है कि यह मूल दृश्य भर नहीं रहा है, भले ही लेआउट एक्सएमएल ऐसा करने के लिए निर्दिष्ट कर रहा हो।व्हीलव्यू पैरेंट

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:background="#00000000"> 

    <LinearLayout 
     android:orientation="vertical" 
     android:layout_alignParentBottom="true" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content"> 

     <LinearLayout 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:orientation="horizontal" 
      android:paddingTop="5dp" 
      android:paddingBottom="5dp" 
      android:background="@drawable/picker_bar"> 
      <Button 
       android:id="@+id/repeatButton" 
       android:textColor="#FFF"     
       android:layout_gravity="center_vertical" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:background="@drawable/picker_button_selected" 
       android:paddingTop="8dp" 
       android:paddingBottom="8dp" 
       android:paddingLeft="15dp" 
       android:paddingRight="15dp" 
       android:layout_marginLeft="7dp" 
       android:gravity="center" 
       android:textSize="16sp" 
       android:text="Repeat"/> 
      <Button 
       android:id="@+id/DelayButton" 
       android:layout_gravity="center_vertical" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:background="@drawable/picker_button_unselected" 
       android:paddingTop="8dp" 
       android:textColor="#FFF" 
       android:paddingBottom="8dp" 
       android:paddingLeft="15dp" 
       android:paddingRight="15dp" 
       android:layout_marginLeft="10dp" 
       android:gravity="center" 
       android:textSize="16sp"   
       android:text="Delay"/> 
      <Button 
       android:id="@+id/doneButton" 
       android:layout_marginLeft="10dp" 
       android:layout_gravity="center_vertical" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:background="@drawable/picker_button_unselected" 
       android:textColor="#FFF" 
       android:paddingTop="8dp" 
       android:paddingBottom="8dp" 
       android:paddingLeft="15dp" 
       android:paddingRight="15dp" 
       android:gravity="center" 
       android:textSize="16sp" 
       android:text="Done"/>    
     </LinearLayout> 

     <include layout="@layout/repeat_view"/> 
     <include layout="@layout/delay_view"/> 
    </LinearLayout> 
</RelativeLayout> 

यहाँ दोहराने/देरी दृश्य एक्सएमएल है (वे दोनों काफी हैं:

enter image description here

यहाँ लेआउट एक्सएमएल है:

यहाँ मैं क्या मतलब है की एक छवि है वही):

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/wheelRepeat" 
    android:layout_height="wrap_content" 
    android:orientation="vertical" 
    android:background="@drawable/layout_bg" 
    android:layout_width="fill_parent"> 
    <LinearLayout 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_horizontal" 
     android:layout_width="fill_parent" 
     android:paddingTop="4dp" 
     android:paddingBottom="4dp"  
     android:orientation="horizontal"> 
     <desiderata.ihunt.resources.WheelView 
      android:id="@+id/activeRepeat" 
      android:layout_height="wrap_content" 
      android:layout_width="wrap_content" 
      android:layout_gravity="center_vertical" 
      android:layout_weight="1"/>    
     <desiderata.ihunt.resources.WheelView 
      android:id="@+id/minsRepeat" 
      android:layout_height="wrap_content" 
      android:layout_width="wrap_content" 
      android:layout_gravity="center_vertical" 
      android:layout_weight="2"/> 
     <desiderata.ihunt.resources.WheelView 
      android:id="@+id/secsRepeat" 
      android:layout_height="wrap_content" 
      android:layout_width="wrap_content" 
      android:layout_gravity="center_vertical" 
      android:layout_weight="2"/>     
    </LinearLayout> 
</LinearLayout> 

यहां बताया गया है कि मैं दृश्य कैसे जोड़ रहा हूं:

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    setContentView(R.layout.settings); 

      ... 

मैं WheelView स्रोत के माध्यम से देखा है, लेकिन यह स्पष्ट जहां पूरे नियंत्रण की चौड़ाई सेट किया जा रहा है नहीं है और अगर पहिया नियंत्रण किसी भी तरह भी माता-पिता लेआउट की चौड़ाई नियंत्रित कर रहा है।

यह नवीनतम एसडीके पर चल रहा है। क्या कुछ स्पष्ट है कि मुझे याद आ रही है?

+0

मैं आपके द्वारा पोस्ट किए गए व्हील पिकर और एक्सएमएल के बीच कोई कनेक्शन नहीं देख सकता। क्या आपने सही फाइल पोस्ट की है? – Simon

+0

@ सिमॉन मैंने दोहराना/देरी दृश्य एक्सएमएल फाइलों को जोड़ा। अगर आपको कुछ और देखने की ज़रूरत है तो कृपया मुझे बताएं – ZeNewb

+0

क्या दो विचार हैं, एक दोहराने के लिए और एक देरी के लिए? यदि हां, तो एक आईडी संघर्ष हो सकता है। – Eric

उत्तर

6

LinearLayout जो तीन desiderata.ihunt.resources.WheelView शामिल android:layout_width="fill_parent" है, लेकिन WheelViews खुद को है:

android:layout_height="wrap_content" 
android:layout_width="wrap_content" 

यही कहा जा रहा है और अगर मैं सवाल समझ में सही ढंग से मतलब है, कि तीन पहियों की चौड़ाई है कि कम है अगर parent की चौड़ाई (इस मामले में LinearLayout जिसमें तीन desiderata.ihunt.resources.WheelView शामिल हैं) - तो आपको इसके पीछे क्या छिपाने के लिए ठोस रंग (उदाहरण के लिए काला) के साथ LinearLayout भरने के पहियों को खींचना होगा।

+0

स्पष्ट स्पष्टीकरण के लिए धन्यवाद! – ZeNewb

+0

आपका स्वागत है :) – g00dy

1

g00dy के वैकल्पिक समाधान (हालांकि वह पूरी तरह से सही है) - यदि आप प्रत्येक पहियों की चौड़ाई 0 डीपी पर सेट करते हैं और अपना लेआउट_वेट = 1 सेट करते हैं, तो 3 स्क्रीन के बराबर हिस्से को ले जाने के लिए खिंचाव करेगा। यदि आप उन्हें समान नहीं चाहते हैं, तो उन्हें अपने इच्छित अनुपात में सेट करें।

+0

शानदार विकल्प! मैं इसे आज़मा दूंगा – ZeNewb

0
<LinearLayout 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_horizontal" 
     android:layout_width="fill_parent" 
     android:paddingTop="4dp" 
     android:weightSum="3"  // add weight sum here 
     android:paddingBottom="4dp"  
     android:orientation="horizontal"> 
     <desiderata.ihunt.resources.WheelView 
      android:id="@+id/activeRepeat" 
      android:layout_height="wrap_content" 
      android:layout_width="wrap_content" 
      android:layout_gravity="center_vertical" 
      android:layout_weight="1"/>    //weights here 
     <desiderata.ihunt.resources.WheelView 
      android:id="@+id/minsRepeat" 
      android:layout_height="wrap_content" 
      android:layout_width="wrap_content" 
      android:layout_gravity="center_vertical" 
      android:layout_weight="1"/>    //weights here 
     <desiderata.ihunt.resources.WheelView 
      android:id="@+id/secsRepeat" 
      android:layout_height="wrap_content" 
      android:layout_width="wrap_content" 
      android:layout_gravity="center_vertical" 
      android:layout_weight="1"/>    //weights here  
    </LinearLayout> 

बदलें इस

0

की तरह अपने पहिया लेआउट इस विजेट स्क्रीन की चौड़ाई को भरने कर देगा अपने दोहराने/देरी दृश्य एक्सएमएल

<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/wheelRepeat" 
    android:layout_height="wrap_content" 
    android:orientation="vertical" 
    android:background="@drawable/layout_bg" 
    android:layout_width="fill_parent"> 
    <LinearLayout 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_horizontal" 
     android:layout_width="fill_parent" 
     android:paddingTop="4dp" 
     android:paddingBottom="4dp"  
     android:orientation="horizontal" 
     android:weightSum="10"> 

     <desiderata.ihunt.resources.WheelView 
      android:id="@+id/activeRepeat" 
      android:layout_height="wrap_content" 
      android:layout_width="0dp" 
      android:layout_gravity="center_vertical" 
      android:layout_weight="2"/>    
     <desiderata.ihunt.resources.WheelView 
      android:id="@+id/minsRepeat" 
      android:layout_height="wrap_content" 
      android:layout_width="0dp" 
      android:layout_gravity="center_vertical" 
      android:layout_weight="4"/> 
     <desiderata.ihunt.resources.WheelView 
      android:id="@+id/secsRepeat" 
      android:layout_height="wrap_content" 
      android:layout_width="0dp" 
      android:layout_gravity="center_vertical" 
      android:layout_weight="4"/>     
    </LinearLayout> 
</LinearLayout> 

के लिए इस तरह एक लेआउट की कोशिश करो और आप समायोजित कर सकते हैं लेआउट वजन tweaking द्वारा चौड़ाई अनुपात। यदि आपको लैंडस्केप मोड में पूरी स्क्रीन भरने के लिए विजेट की आवश्यकता नहीं है, तो आप पैरेंट रैखिक लेआउट की चौड़ाई के लिए रैप सामग्री का उपयोग कर सकते हैं।