旋转器不可见

时间:2018-03-07 08:53:49

标签: android android-arrayadapter android-spinner

我有一个微调器,我根据程序执行期间的决定设置适配器。虽然在另一种情况下它适用于一种情况,但是旋转器不可见。微调器的名称是 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中,微调器不可见。这工作得很好。还有什么我可以检查以了解原因。

任何人都可以看到问题的原因。 提前谢谢。

1 个答案:

答案 0 :(得分:0)

有问题的微调器的布局宽度设置为包装内容,这意味着它的宽度将根据适配器内容的宽度进行调整。虽然在一种情况下它正在显示,但在另一种情况下甚至在设置适配器之后,它也不会显示。因此,我最终将微调器的布局宽度设置为0,并将layout_weight设置为1,现在它可以有效显示。