分隔符填充,忽略它

A.Q*_*oga 8 android list-separator android-layout

我有这个分隔符的问题:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" >
    <padding android:left="10dip" android:right="10dip"/>
    <solid android:color="@color/listSeparator"/>
    <size android:height="1px" />
</shape>
Run Code Online (Sandbox Code Playgroud)

我试图在listview组件的左/右边做一个小边距/填充(使用它上面的相对,而不是ListView对象).然后当我试着这样说的时候......

getListView().setDivider(getResources().getDrawable(R.drawable.song_separator));
Run Code Online (Sandbox Code Playgroud)

...它被直接忽略,放置一个完整的布局分隔符.

现在我不知道是什么问题,但我知道:

  • 我不能在所有ListView中放置边距,因为我想要listHeader fill_parent
  • 我试图设置一个假边框,但是当我改变它的背景颜色,给我一个分隔符空间时看起来并不好看.

任何的想法?

改性

我的最后一个部分解决方案是放置一个ImageView,在父底部旁边对齐.这是部分原因,它放在底部但不放在原始分隔线上.

如果有人可以告诉我如何将ImageView放在分隔线的确切线上,我也会给他+50.

AGr*_*ald 1

Quiroga 所以我的第一个赌注是通过将方法调用分成单独的行来使代码更易于调试。

ListView lview = getListView();
if (lview != null){
  Resources res = getResources();
  if (res != null) {
       Drawable dable = res.getDrawable(R.drawable.song_separator);
       if (dable != null){
           lview.setDivider(dable)
       }
  }
} else {
   //Log in some way that you have a problem.
}
Run Code Online (Sandbox Code Playgroud)

我知道它看起来有点过于复杂,但这样您就可以确保找到 Drawable 并且是正确的,然后正确分配给 ListView。

您可以尝试的另一件事是分配一个不同的平台特定分隔符,看看它是否正常工作。

还要尝试获取Android 源代码,如果您将其添加到 Java 项目中,它会重新上线,您可以调试到平台类并深入调试平台代码。

所以这并不是真正解决您的问题,但也许它可以帮助您找到解决方案。