Разделитель прокладок, игнорируя его - PullRequest
8 голосов
/ 18 октября 2011

У меня проблема с этим разделителем:

<?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Объект).Затем, когда я пытаюсь выразить это следующим образом ...

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

... это напрямую игнорируется, добавляя разделитель полной компоновки.

Теперь я не знаю, в чем проблема, но я знаю, что:

  • Я не могу поместить поле во все ListView, потому что я хочу listHeader fill_parent
  • Я пытался поставить фальшивую рамку, но не очень приятно смотреть, когда я изменяю его цвет фона, оставляя мне разделитель.

Есть идеи?

ИЗМЕНЕНО

Мое последнее частичное решение - поместить ImageView, выровненный рядом с родительским дном.Это частичная причина, потому что он помещается внизу, но не на оригинальном делителе.

Если кто-то может сказать мне, как поместить это изображение в точную линию делителя, я бы дал ему +50тоже.

Ответы [ 2 ]

1 голос
/ 26 октября 2011

Поместите заголовок в отдельный файл и получите к нему доступ:

открытый класс AuditActivity extends 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: добавление статического заголовка в начало списка ListActivity

1 голос
/ 21 октября 2011

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, он снова подключится , если вы добавите егов своем Java-проекте вы можете отлаживать в классах Platform и глубоко в коде платформы.

Так что это не совсем решение вашей проблемы, но, возможно, оно поможет вам найти решение.

...