2012-10-13 13 views
12

Próbowałem wiele, aby zmienić wysokość elementu rozwijanej turbinki .. ale nie mogłem dostać dobre rozwiązanie .. plz mi pomóc faceci ..jak zmienić wysokość rozwijaną w turbinki

Oto kod 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

jak zmienić wysokość rozwijanej żadnego pomysłu ..

+0

Sprawdź następujący URL dokładnego rozwiązania: http://stackoverflow.com/questions/8878260/how-to-re- size-the-height-of-the-items-in-spinner-with-multiple-choice – Chase1986

+0

powinieneś oznaczyć posta Johna jako odpowiedź. –

Odpowiedz

0

Próbowałeś coś takiego android:layout_height="30dp" zamiast fill_parent dla któregokolwiek z tych elementów w loginrowspinner.xml?

+1

s boss to zmieni wysokość spinner nie ma sensu .. chcę wysokość zrzutu –

+0

w końcu mam szef wyjścia .. –

41

Po prostu dodaj to do adaptera.

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

to jest najprostsze i najlepsze rozwiązanie. dzięki. –

+0

To powinno być akceptowane rozwiązanie! – Roel

+0

... tak sprytne rozwiązanie :) – Davidm176

6

W loginrowspinner.xml, dodać android:minHeight="48dp" do TextView elementem.

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

Próbowałem z powyższym podejściem i to wystarczyło ..+1 – user755499

+0

Skąd bierze się TextView w Spinner? –

4

Może to pomoże ..

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

dodać ten w karty: convertView.setMinimumHeight (60); który działa dla mnie.

1

Stwórz własną TextView w folderze układ jak ta, która zostanie wypełniona w rozwijanej popup

<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" /> 

Uwaga mam pod warunkiem

android:layout_height="60dp" 

i

android:paddingLeft="20dp" 

i wykorzystują to dla twoja przędzarka, jak ta

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); 

działa to dla mnie :)

1

Można spróbować użyć dps.

@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

// Może to również pomóc:

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

Proszę wyjaśnić "40 * cx.getResources(). GetDisplayMetrics(). Density"? – backslashN

+0

@backslashN, podczas pisania kodu Java dla Androida, nie można używać jednostek dp i trzeba podawać je w pikselach (w przeciwieństwie do XML, który akceptuje również dp). Jeśli ustawisz 40 pikseli dla wszystkich przypadków, wysokość będzie nadal wyglądać na małych ekranach z dużą ilością pikseli. Dlatego używamy tego kodu, aby uwzględnić aktualne zagęszczenie urządzeń – kit

Powiązane problemy