安卓:可展开列表活动中图标重叠文字

5
我正在尝试基于API Demos示例代码构建一个非常简单的ExpandableListActivity:Sample Code。然而,即使演示仅使用默认布局,布局也看起来不正确。似乎文本缩进不够,导致展开/折叠图标重叠在列表项文本上,如屏幕截图所示。为什么会发生这种情况,我该如何解决?感谢!
1个回答

6
问题出在示例代码中的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,在设计时设置密度无关的属性,而不是在运行时动态设置。


但它并没有解决适配所有屏幕尺寸的布局问题。这只是一种权宜之计的代码。 - moonlightcheese
@moonlightcheese:这并不是完整的解决方案,显然。我相信你可以利用给出的指针找到一些解决方法。 - MH.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接