【问题标题】:Android: Set different layouts for Spinner title and dropdownAndroid:为 Spinner 标题和下拉菜单设置不同的布局
【发布时间】:2018-10-04 18:53:54
【问题描述】:

单击位于操作栏上的微调器时,它应该会显示一个包含一组项目的下拉菜单。项目的每个查看器都有一个名称和一张照片。

但是,我希望微调器的标题是另一种布局(纯文本)。

简而言之:如何为标题微调器设置与下拉布局不同的布局?

Main.java

SpinnerAdapter spinnerAdapter = new SpinnerAdapter(this, dummyLists);
    mMyListsSpinner.setAdapter(spinnerAdapter);

SpinnerAdapter.java

private class SpinnerAdapter extends BaseAdapter {
    private String[] mListNames;
    SpinnerAdapter(Context context, String[] listNames) {
        this.mListNames = listNames;
    }

    @Override
    public int getCount() {
        if(this.mListNames == null) {
            return 0;
        }
        return this.mListNames.length;
    }

    @Override
    public Object getItem(int position) {
        return null;
    }

    @Override
    public long getItemId(int position) {
        return 0;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        Context context = parent.getContext();

        int spinnerItemViewLayout = R.layout.layout_spinner_dropdown_item;

        LayoutInflater inflater = LayoutInflater.from(context);
        View view = inflater.inflate(spinnerItemViewLayout, parent, false);

        TextView nameTextView = (TextView) view.findViewById(R.id.tv_spinner_list_name);
        nameTextView.setText(this.mListNames[position]);

        return view;
    }
}

layout_spinner_dropdown_item.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/linearlayout_spinner_dropdown_item"
android:layout_width="222dp"
android:layout_height="@dimen/toolbar_actionbar_height"
android:orientation="horizontal">

<TextView
    android:id="@+id/tv_spinner_list_name"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:text="LIST"
    android:textSize="@dimen/text_size_subheading"
    android:textColor="@color/color_green_dark"/>

<ImageView
    android:layout_width="42dp"
    android:layout_height="42dp"
    android:layout_centerVertical="true"
    android:layout_alignParentRight="true"
    android:src="@color/color_green_dark"/>
</RelativeLayout>

【问题讨论】:

    标签: java android xml material-design spinner


    【解决方案1】:

    这可能会有所帮助:Android Spinner with different layouts for “drop down state” and “closed state”?

    基本点:

    1. Adapter 类中重写getView()getDropDownView() [SpinnerAdapter]
    2. getView() 中,您应该扩大标题栏的正常布局,在您的情况下,它只是TextView。在getDropDownView() 中,您应该为layout_spinner_dropdown_item.xml 充气。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-06-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多