分隔符填充,忽略它

时间:2011-10-18 12:47:14

标签: 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,在父底部旁边对齐。 这是部分原因,它放在底部而不是原始分隔线上。

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

2 个答案:

答案 0 :(得分: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.
}

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

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

如果将其添加到Java项目中,您也可以尝试使用Android Source Code it is back online,您可以调试到Platform类并深入调试平台代码。

因此,这不是解决您问题的方法,但也许可以帮助您找到解决方案。

答案 1 :(得分:1)

将标题放在单独的文件中,并将其作为:

访问

公共类AuditActivity扩展了ListActivity {

Budget budget;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.audit);
    ListView lv = getListView();
    LayoutInflater infalter = getLayoutInflater();
    ViewGroup header = (ViewGroup) infalter.inflate(R.layout.header, lv, false);
    lv.addHeaderView(header);
    budget = new Budget(this);
    /*
    try {
        test = budget.getTransactions();
        showEvents(test);
    } finally {

    }
    */

// switchTabSpecial();     }

按照这个链接.......它有一个详细的信息,使用RelativeLayout而不是Linear One,我希望这会对你有所帮助。 Android: Adding static header to the top of a ListActivity