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