i tried a lot to change the dropdown item height of spinner.. but i couldn\'t get a good solution.. plz help me guys..
here is a code loginactivityview.xml
Just add this to your adapter.
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
Maybe it can help..
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;
}
};
In loginrowspinner.xml, add android:minHeight="48dp"
to TextView
element.
<TextView
...
android:id="@+id/textViewRowFacility"
android:minHeight="48dp" />
Create your own textview in layout folder like this which will be populated in dropdown 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" />
Note I have provided
android:layout_height="60dp"
and
android:paddingLeft="20dp"
and use this for your spinner, like this
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);
this works for me :)
You can try using 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;
}
As people say, best way is to add
android:minHeight="48dp"
to .xml. But if you want to do it programatically use:
mspinner.setMinimumHeight(48);
being mspinner the name of your spinner and 48 the new height of the option.