2

我想问一下 gmail 应用程序中的操作栏。

在主活动中,操作栏(收件箱、已发送等)中有一个微调器,并且没有标题。

我在我的应用程序中尝试过,但应用程序图标和微调器之间的差距比在 gmail 应用程序中更大。

我使标题既不可见又空洞,但差距仍然更大。

我是否必须为操作栏制作自己的视图定义才能达到相同的效果?

非常感谢,马丁

4

4 回答 4

3

谢谢大家的回答。matthias的回答让我想到了下面这个很有魅力的解决方案:

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.

于 2013-03-03T07:54:26.840 回答
2

创建一个具有正确填充的可绘制对象作为您的操作栏图标。

<?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>

然后只需将其设置为清单中的图标。您应该能够以这种方式调整填充。

于 2013-02-28T12:12:54.683 回答
1

减少 的填充Spinner,更准确地说是View在. 我刚刚在一个示例项目中尝试过,它显着缩小了差距。getView()Adapter

于 2013-02-28T15:51:25.263 回答
0

添加这一行 spinner.setPadding(0,0,0,0); 打开下拉菜单时隐藏向下箭头图像。

于 2016-09-01T12:57:09.223 回答