2

我不明白为什么某些元素的渲染方式不同。这是一个模拟的ActionBar,我在其中放置了一个 Spinner 来更改在线状态。然而,微调器中的文本在 Desire HD (2.3.5) 和 Nexus 7 (4.2.2) 上可见,但在 LG P990 (4.0.4) 上当前微调器项目不可见我设置了实际位置带有一个绿色矩形。

GB和ICS截图

这是我的代码,我在其中稍微操作了 Spinner,以便文本可读:

IcsSpinner status = (IcsSpinner)content.findViewById(R.id.status);
OnlineAdapter adapter = new OnlineAdapter(status.getContext());
status.setAdapter(adapter);
status.setOnItemSelectedListener(new OnItemSelectedListener() {
    public void onItemSelected(IcsAdapterView<?> parent, View v, int position, long id) {
        TextView tv = (TextView)parent.getChildAt(0);
        tv.setTextSize(12);
        tv.setPadding(0, 0, 0, 0);
    }

    public void onNothingSelected(IcsAdapterView<?> parent) {
    }
});

顺便说一下,上面的代码片段中的默认 Spinner 看起来是一样的,我使用的是 ActionBarSherlock 的后端端口。

我尝试使用:

tv.setPadding(0, -12, 0, 0);

这对于 ICS 设备看起来不错,但在 GB 和 JB 上看起来不太好。

这是什么原因?
如何检测是否需要更正位置?

4

0 回答 0