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); скрыть изображение стрелки вниз, когда раскрывающийся список открыт.

Другие вопросы по тегам