我正在尝试基于API Demos示例代码构建一个非常简单的ExpandableListActivity:Sample Code。然而,即使演示仅使用默认布局,布局也看起来不正确。似乎文本缩进不够,导致展开/折叠图标重叠在列表项文本上,如屏幕截图所示。为什么会发生这种情况,我该如何解决?感谢!
getGenericTextView()
方法:// Set the text starting position
textView.setPadding(36, 0, 0, 0);
setPadding(...)
方法可以设置内边距(即固有空间)的像素值,这意味着此缩进方法的结果将因设备而异。您似乎正在使用一个水平分辨率相对较大的hdpi设备,导致TextView左侧可视空间过小。关于此问题的更多解释,请阅读此处的文档。
话虽如此,您可以通过设置一个密度无关像素(d(i)p)值轻松地解决此问题,以使不同分辨率下的可视缩进空间相同。您可以使用TypedValue实用工具类来实现此功能:
int dips = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 36, getResources().getDisplayMetrics());
或者你可以从xml中膨胀一个TextView,在设计时设置密度无关的属性,而不是在运行时动态设置。