2013-02-28 69 views
2

我想问一下关于Gmail应用程序中的操作栏。android:图标和微调之间的差距

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

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

我让标题看起来既不可见又空白,但差距还是有点大。

我必须为操作栏创建自己的视图定义才能达到相同的效果吗?

非常感谢, 马丁

回答

2

谢谢大家的回答。的马蒂亚斯答案领我到下面的解决方案,工作就像一个魅力:

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

+0

好东西,你在这里发布你的解决方案。但记得upvoting帮助你的答案;) – 2013-03-03 14:38:07

+0

嗨,Matthis。我很乐意,但是我需要15个声望点才能做到这一点,我还没有:-) – MartinCz 2013-03-04 11:48:49

+0

哈哈,完全忘了这一点。干得好 ;) – 2013-03-04 13:31:56

1

创建具有正确填充为你的动作条图标绘制。

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

然后只是设置为清单中的图标。你应该可以通过这种方式调整填充。

+0

嗨,听起来很合理,但这并没有给我带来预期的结果:) – MartinCz 2013-03-03 07:56:17

1

降低Spinner的填充,在布局中View即得到在AdaptergetView()方法充气的更精确的填充。我只是在一个样本项目中尝试过,它显着缩小了差距。

0

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