この部分のサイズをフルディスプレイに変更する必要があります。これどうやってするの?
私のアダプター:
String[] navigations = getResources().getStringArray(R.array.actionBar);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(
getBaseContext(), R.layout.custom_spinner_title_bar,
Android.R.id.text1, navigations);
adapter.setDropDownViewResource(R.layout.custom_spinner_title_bar);
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);
actionBar.setListNavigationCallbacks(adapter, navigationListener);
custom_spinner_title_bar.xml:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:id="@+id/RelativeLayout1"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:gravity="fill_horizontal"
Android:orientation="vertical" >
<TextView
xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:id="@Android:id/text1"
Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
Android:gravity="center"
Android:padding="5dip"
Android:textAppearance="?android:attr/textAppearanceMedium"
Android:textColor="#FFFFFF" />
</RelativeLayout>
xml
タグのSpinner
ファイルに属性を追加
Android:dropDownWidth="150dp"
あなたがする必要があるのは、デフォルトのアダプタではなく、ドロップダウン用のカスタムアダプタを使用することです。この場合、各「行」の「最小幅」を任意に設定します。
private class myCustomAdapter extends ArrayAdapter{
private List<String> _navigations;
private int _resource;
private int _textViewResourceId;
public myCustomAdapter (Context context, int resource, int textViewResourceId, List<String> objects) {
super(context, resource, textViewResourceId, objects);
_navigations = objects;
_resource = resrouce;
_textViewResourceId = textViewResourceId;
}
@Override
public View getDropDownView(int position, View convertView, ViewGroup parent){
View row;
LayoutInflater inflater=getLayoutInflater();
row = inflater.inflate(_resource, null);
TextView _textView = row.findViewById(_textViewResourceId);
_textView.setText(_navigations.get(position));
Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
int _width = size.x;
row.setMinimumWidth = _width;
return row;
}
}
もちろん、「minimumWidth」を使用して、他の任意のものを選択できます。この例では、画面の幅に一致するように設定されています(ただし、よりスマートなアプローチは、アプリのコンテナーフレームを測定し、それに一致させることです)。
次に、アダプターを設定します。
myCustomAdapter adapter = new myCustomAdapter(getBaseContext(), R.layout.custom_spinner_title_bar,Android.R.id.text1, navigations);