9

以下方法在 android 版本 jellybean 4.3 中不起作用。

historyExpaLV.setIndicatorBounds(historyExpaLV.getRight() - 60,
                    historyExpaLV.getWidth() - 8);    

有谁知道解决方案?提前致谢。

4

2 回答 2

31

我是如何解决这个问题的:

将 SDK Manager 更新到 Android 4.3 并将其用作构建目标。他们在 API 18 中引入了一种新方法,称为setIndicatorBoundsRelative(int, int),它与 android 4.3 中的另一个(但正确)一样工作。

检查 Android 版本并将旧方法与旧 API 一起使用:

if(android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.JELLY_BEAN_MR2) {
   mListView.setIndicatorBounds(myLeft, myRight);
} else {
   mListView.setIndicatorBoundsRelative(myLeft, myRight);
}
于 2013-08-02T09:48:10.160 回答
5

我认为这是错误

int right = (int) (getResources().getDisplayMetrics().widthPixels - TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 30, getResources().getDisplayMetrics()));
    expandableListView.setIndicatorBounds(right - getResources().getDrawable(R.drawable.group_indicator_padding).getIntrinsicWidth(), right);

此代码在 4.2.2 之前工作正常,在 4.3 上什么也不做

于 2013-08-01T14:20:34.463 回答