Разделитель прокладок, игнорируя его
У меня проблема с этим разделителем:
<?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 Object) . Затем, когда я пытаюсь выразить это так...
getListView().setDivider(getResources().getDrawable(R.drawable.song_separator));
... это напрямую игнорируется, помещая полный разделитель макета.
Теперь я не знаю, в чем проблема, но я знаю, что:
- Я не могу поставить поле во всех ListView, потому что я хочу listHeader fill_parent
- Я пытался поставить фальшивую границу, но это не очень приятно, когда я меняю цвет фона, оставляя разделитель.
Любая идея?
ОБНОВЛЕНО
Мое последнее частичное решение - поместить ImageView, выровненный рядом с родительским дном. Это частичная причина, потому что это ставит на дно, но не на оригинальный разделитель.
Если кто-то может сказать мне, как поместить это изображение в точную линию делителя, я бы тоже дал ему +50.
2 ответа
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 и глубоко в коде платформы.
Так что на самом деле это не решение вашей проблемы, но, возможно, оно поможет вам найти решение.
Поместите заголовок в отдельный файл и получите к нему доступ:
открытый класс 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: добавление статического заголовка в верхнюю часть ListActivity