我查看了这个问题Difference between android.R.layout.simple_spinner_dropdown_item and android.R.layout.simple_spinner_item,但找不到我的问题的答案。
我可以看到simple_spinner_item和simple_spinner_dropdown_item之间存在差异。但为什么我需要同时设置它们? Spinner布局的哪个部分由setAdapter() (simple_spinner_item )
中设置的布局控制,哪个布局设置为setDropDownViewResource() (simple_spinner_dropdown_item)
?
现在我无法理解为什么我不能做相反的事情:将simple_spinner_item与setDropDownViewResource()
和simple_spinner_dropdown_item
与setAdapter()
一起使用?
答案 0 :(得分:1)
我看到了混乱。重新说明:"为什么我甚至向适配器的构造函数提供AbsSpinner#onMeasure()
?它是如何使用的?"
布局资源,提供给适配器的构造函数is used以测量微调器行项目的视图。从mAdapter.getView()
mResource
调用,最终uses mDropDownResource
(资源ID,从构造函数传递到适配器)以使视图膨胀。
另一方面,Spinner
is used要对mDropDownResource
的每一行进行充气。
请注意,如果您未明确提供mResource
,则默认为适配器构造函数中提供的public ArrayAdapter(@NonNull Context context, @LayoutRes int resource,
@IdRes int textViewResourceId, @NonNull List<T> objects) {
...
mResource = mDropDownResource = resource;
...
}
。
compile 'com.google.android.gms:play-services-wearable:10.0.1'
答案 1 :(得分:0)
对于 setAdapter ()中的 simple_spinner_item ,它用于显示微调器中每一行的项目。 对于 simple_spinner_dropdown_item ,当用户单击微调器中的下拉图标时,它用于显示所有项目行。 如果您想查看它们之间的差异,可以尝试以下步骤:
为 simple_spinner_item 和 simple_spinner_dropdown_item
在两个布局中创建 TextView
更改 TextView
由此,您将看到差异..谢谢