可扩展列表视图在jellyBean 4.3版本中将组图标指示器移动到右侧?

pav*_*mar 9 android expandablelistview android-4.3-jelly-bean

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

historyExpaLV.setIndicatorBounds(historyExpaLV.getRight() - 60,
                    historyExpaLV.getWidth() - 8);    
Run Code Online (Sandbox Code Playgroud)

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

lub*_*ben 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);
}
Run Code Online (Sandbox Code Playgroud)

  • 但为什么要做出这种改变? (2认同)
  • 什么是myLeft,myRight?请详细说明 (2认同)

Xan*_*Xan 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);
Run Code Online (Sandbox Code Playgroud)

这段代码可以正常工作到4.2.2并且在4.3上什么都不做