2012-10-13 42 views
12

में लटकती ऊंचाई बदलने के लिए कैसे मैं एक बहुत स्पिनर की लटकती आइटम ऊंचाई बदलने की कोशिश की .. लेकिन मैं एक अच्छा समाधान नहीं मिल सका .. plz मेरी मदद लोग ..स्पिनर

यहाँ एक कोड है loginactivityview.xml

 <Spinner 
     android:id="@+id/spinnerFacility" 
     android:layout_width="400dip" 
     android:layout_height="50dip" 
     android:layout_alignLeft="@+id/lpassword" 
     android:layout_below="@+id/lpassword" 
     android:layout_marginTop="32dip"    
     android:background="@drawable/location" 
     android:paddingLeft="10dip"    
     android:dropDownWidth="@style/dropDown" 
     android:minHeight="40dip"  
     android:typeface="monospace" /> 

loginrowspinner.xml

<?xml version="1.0" encoding="utf-8"?> 
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" > 

    <TextView 
    android:id="@+id/textViewRowFacility" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:gravity="left" 
    android:paddingBottom="5dip" 
    android:paddingLeft="6dip" 
    android:paddingRight="6dip" 
    android:paddingTop="5dip" 
    android:text="Facility" 
    android:textColor="#000000" 
    android:textSize="20dip" > 
</TextView> 

enter image description here

कैसे किसी भी विचार के लिए ड्रॉप डाउन की ऊंचाई बदलने के लिए ..

+0

चेक सटीक समाधान के लिए URL निम्नलिखित: http://stackoverflow.com/questions/8878260/how-to-re- आकार-द-ऊंचाई-के-आइटम-इन-स्पिनर-साथ-एकाधिक-पसंद – Chase1986

+0

आपको जॉन के पोस्ट को उत्तर के रूप में चिह्नित करना चाहिए। –

उत्तर

0

आप loginrowspinner.xml में उन तत्वों में से किसी के लिए android:layout_height="30dp" बजाय fill_parent की तरह कुछ करने की कोशिश की है?

+1

एस बॉस यह स्पिनर की ऊंचाई को बदल देगा, इसका कोई उपयोग नहीं है .. मुझे ड्रॉपडाउन ऊंचाई –

+0

चाहिए, आखिरकार मुझे आउटपुट बॉस मिला .. –

41

बस इसे अपने एडाप्टर में जोड़ें।

adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
+0

यह सबसे आसान और सबसे अच्छा समाधान है। धन्यवाद। –

+0

यह स्वीकार्य समाधान होना चाहिए! – Roel

+0

... इतना चालाक समाधान :) – Davidm176

6

loginrowspinner.xml में, android:minHeight="48dp"TextView तत्व में जोड़ें।

<TextView 
    ... 
    android:id="@+id/textViewRowFacility" 
    android:minHeight="48dp" /> 
+0

मैंने उपर्युक्त दृष्टिकोण के साथ प्रयास किया और यह चाल है ..+1 – user755499

+0

स्पिनर में टेक्स्टव्यू कहां से आता है? –

4

शायद यह मदद कर सकते हैं ..

ArrayAdapter<String> yourSpinnerAdapter = new ArrayAdapter<String>(this, 
       R.layout.spinner_item, yourItem) { 

     @Override 
     public View getDropDownView(int position, View convertView, 
       ViewGroup parent) { 
      convertView = super.getDropDownView(position, convertView, 
        parent); 

      convertView.setVisibility(View.VISIBLE); 
      ViewGroup.LayoutParams p = convertView.getLayoutParams(); 
      p.height = 100; // set the height 
      convertView.setLayoutParams(p); 

      return convertView; 
     } 
    }; 
0

अपने एडाप्टर में जोड़ें: convertView.setMinimumHeight (60); जो मेरे लिए काम करता है।

1

जो लटकती पॉपअप में से भरी हुई होगी इस तरह लेआउट फ़ोल्डर में अपने स्वयं के TextView बनाएं

<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@android:id/text1" 
style="?android:attr/spinnerItemStyle" 
android:layout_width="match_parent" 
android:layout_height="60dp" 
android:gravity="center_vertical" 
android:paddingLeft="20dp" 
android:ellipsize="marquee" 
android:singleLine="true" 
android:textSize="18sp" 
android:textAlignment="inherit" /> 

नोट मैं

android:layout_height="60dp" 

और

android:paddingLeft="20dp" 

प्रदान की है और के लिए इसका उपयोग किया है आपका स्पिनर, इस तरह

Spinner dropdown = (Spinner)findViewById(R.id.sosMode); 
String[] items = new String[]{"Date", "Travelling alone"}; 
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.custom_dropdown_list, items); 
dropdown.setAdapter(adapter); 

यह मेरे लिए काम करता है :)

1

आप डीपीएस उपयोग करने का प्रयास कर सकते हैं।

@Override 
public View getDropDownView(int position, View convertView, ViewGroup parent) { 

    LayoutInflater inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 

    TextView textview = (TextView)inflater.inflate(android.R.layout.simple_spinner_item, null); 

    textview.setText(alOpcion.get(position).getOpcionName()); 

    DisplayMetrics metrics = parent.getResources().getDisplayMetrics(); 
    float dp = 40f; 
    float fpixels = metrics.density * dp; 
    int pixels = (int) (fpixels + 0.5f); 

    textview.setHeight(pixels); 

    return textview; 
} 
0

// यह भी मदद कर सकता है:

adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, dataForAdapter) { 


     @Override 
     public View getDropDownView(int position, View convertView, ViewGroup parent) { 
      View v = super.getView(position, convertView, parent); 
      v.setMinimumHeight((int) (40*cx.getResources().getDisplayMetrics().density)); 
      v.setBackgroundColor(Color.rgb(222, 222, 222)); 


      return v; 
     } 

    }; 
+0

क्या आप कृपया '40 * cx.getResources() को समझ सकते हैं। GetDisplayMetrics()। घनत्व' '? – backslashN

+0

@backslashN, एंड्रॉइड के लिए जावा कोड लिखते समय, आप डीपी इकाइयों का उपयोग नहीं कर सकते हैं और इसके बजाय पिक्सेल में निर्दिष्ट करना होगा (एक्सएमएल के विपरीत, जो डीपी भी स्वीकार करता है)। यदि आप सभी मामलों के लिए 40 पीएक्स सेट करते हैं, तो ऊंचाई अभी भी बहुत सारे पिक्सेल वाले स्क्रीन पर छोटी दिखाई देगी। यही कारण है कि हम वर्तमान डिवाइस घनत्व को ध्यान में रखने के लिए इस कोड का उपयोग करते हैं – kit

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