Android Spinner with different layouts for “drop down state” and “closed state”?

前端 未结 6 2087
迷失自我
迷失自我 2020-11-29 01:42

I have an Android Spinner view in my layout. I would like that spinner to show only a single text item when closed, but when the user clicks on it (i.e. opens the spinner di

6条回答
  •  无人及你
    2020-11-29 02:05

    I was having problem too. Rather than overriding the class, I hava an easier way to do this.

    But first you need to understand the difference between the resource id in the adapter constructor, and the other one in setDropDownViewResource(...). For example,

    SimpleAdapter adapter =
        new SimpleAdapter(ab.getThemedContext(), data, R.layout.actionbar_dropdown, new String[] { "EventID", "Icon" },
            new int[] { R.id.event_id, R.id.icon });
    
    adapter.setDropDownViewResource(R.layout.actionbar_list_item);
    

    R.layout.actionbar_dropdown is the style for spinner, and R.layout.actionbar_list_item for every single list item.

    I used SimpleAdapter here, since if I use ArrayAdapter, the xml can only be a single TextView.

    R.layout.actionbar_list_item contains a TextView whose id is event_id and an ImageView whose id is icon.

    R.layout.actionbar_dropdown is almost exactly the same as actionbar_list_item, but the visibility of ImageView of the latter is set to GONE.

    In this way every list item has a textview and an imageview, but you will only see a textview on the spinner.

提交回复
热议问题