我有一个微调器,我根据程序执行期间的决定设置适配器。虽然在另一种情况下它适用于一种情况,但是旋转器不可见。微调器的名称是 sp_term 。这是代码:
case "830":
sp_term.setVisibility(View.VISIBLE);
adapter = ArrayAdapter.createFromResource(this, R.array.term830, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
sp_term.setAdapter(adapter);
Log.e("sp_term 830 ",(sp_term.getVisibility() == View.VISIBLE) + " " + sp_term.getAdapter());
break;
case "836":
sp_term.setVisibility(View.VISIBLE);
adapter = ArrayAdapter.createFromResource(this, R.array.term836, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
sp_term.setAdapter(adapter);
Log.e("sp_term 836 ",(sp_term.getVisibility() == View.VISIBLE) + " " + sp_term.getAdapter());
break;
如果 830 ,则可以看到微调器 836 ,而微调器不可见。
两种情况下的日志记录如下:
E/sp_term 830: true android.widget.ArrayAdapter@8038431
E/sp_term 836: true android.widget.ArrayAdapter@b4bb9b2
我在两种情况下设置的数组如下:
<string-array name="term830">
<item>12</item>
<item>16</item>
<item>21</item>
</string-array>
<string-array name="term836">
<item>16</item>
<item>21</item>
<item>25</item>
</string-array>
而在情况830中,微调器可见,但在836中,微调器不可见。这工作得很好。还有什么我可以检查以了解原因。
任何人都可以看到问题的原因。 提前谢谢。
答案 0 :(得分:0)
有问题的微调器的布局宽度设置为包装内容,这意味着它的宽度将根据适配器内容的宽度进行调整。虽然在一种情况下它正在显示,但在另一种情况下甚至在设置适配器之后,它也不会显示。因此,我最终将微调器的布局宽度设置为0,并将layout_weight设置为1,现在它可以有效显示。