Android: разрыв между значком и счетчиком
Я хотел бы спросить о панели действий в приложении Gmail.
В основном упражнении на панели действий есть спиннер (Входящие, Отправленные и т. Д.), А заголовок отсутствует.
Я попробовал это в своем приложении, но между значком приложения и счетчиком больше разрыв, чем в приложении Gmail.
Я сделал заголовок невидимым и пустым, но разрыв все же несколько больше.
Должен ли я создать собственное определение представления для панели действий, чтобы добиться того же эффекта?
Большое спасибо, Мартин
4 ответа
Спасибо всем за ответы. Ответ Матиаса привел меня к следующему решению, которое сработало как шарм:
public class ZeroPaddingArrayAdapter<T> extends ArrayAdapter<T> {
public InboxTypeAdapter(Context context, int textViewResourceId, T[] objects) {
super(context, textViewResourceId, objects);
}
public static ArrayAdapter<CharSequence> createFromResource(Context context,
int textArrayResId, int textViewResId) {
CharSequence[] strings = context.getResources().getTextArray(textArrayResId);
return new ZeroPaddingArrayAdapter<CharSequence>(context, textViewResId, strings);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = super.getView(position, convertView, parent);
view.setPadding(
0,
view.getPaddingTop(),
0,
view.getPaddingBottom()
);
return view;
}
}
Для прядильщиков:
getView()
- Получить вид выбранного в данный момент элемента.getDropDownView()
- Получить виды, которые отображаются, когда спиннер открыт.
Нам нужно только уменьшить отступы в getView()
,
Просто используйте этот адаптер вместо простого ArrayAdapter
,
Создайте чертеж с правильным заполнением в качестве значка панели действий.
<?xml version="1.0" encoding="utf-8"?>
<layer-list
xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:drawable="@drawable/logo"
android:right="10dp"/>
</layer-list>
Тогда просто установите как ваш значок в манифесте. Вы должны быть в состоянии настроить отступ таким образом.
Уменьшить отступы Spinner
точнее - отступы View
в макете, который раздувается в getView()
метод Adapter
, Я только что попробовал это в примере проекта, это значительно сокращает разрыв.
Добавить эту строку spinner.setPadding(0,0,0,0); скрыть изображение стрелки вниз, когда раскрывающийся список открыт.