android - 分隔符填充,忽略它

标签 android android-layout list-separator

这个分隔符有问题:

<?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>

我正在尝试在 ListView 组件的左/右添加一点边距/填充(在其上使用相对对象,而不是 ListView 对象)。然后当我尝试这样说时...

getListView().setDivider(getResources().getDrawable(R.drawable.song_separator));

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

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

  • 我不能在所有 ListView 中放置边距,因为我想要 listHeader fill_parent
  • 我曾尝试放置一个假边框,但当我更改它的背景颜色并放置一个分隔符时,它看起来并不好看。

有什么想法吗?

已修改

我最后的部分解决方案是放置一个 ImageView ,与父 bottom 对齐。 这是部分原因,它放在底部而不是原来的分隔器上。

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

最佳答案

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.
}

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

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

同时尝试获取 Android Source Code it is back online如果您将其添加到您的 Java 项目中,您可以调试到平台类并深入调试平台代码。

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

关于android - 分隔符填充,忽略它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7807426/

相关文章:

android - 在 Android 上使用新的 AppID 更新 Facebook SDK session (使用 Cordova/PhoneGap)

android - ViewGroup match_parent inside wrap_content

android - 如何在 ListView 的特定位置添加分隔符?

ios - 如何更改 UITableView Swift 3 中的分隔符高度?

如果 Instr 函数与命名参数一起使用并将返回值分配给变量,则 VBA 编译错误

android - 如何在 Jetpack Compose 中制作迷你工厂

java - 有没有办法将以下代码缩短为一个 if 语句?

android - Android 中的动画

java - 从用户离开的地方开始 Activity

android - 当 numColumns 更改时,如何在 gridview 上保留所选项目突出显示?