我想问一下gmail应用程序中的操作栏。
在主活动中,操作栏中有一个微调器(收件箱,已发送等)并且没有标题。
我在我的应用中尝试了这一点,但应用程序图标和微调器之间的差距比gmail应用程序中的差距更大。
我让这个标题既隐形又空洞,但差距仍然更大。
我是否必须为动作栏制作自己的视图定义才能达到同样的效果?
非常感谢, 马丁
答案 0 :(得分: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
。
答案 1 :(得分:2)
使用正确的填充创建一个drawable作为操作栏图标。
<?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>
然后在清单中设置为您的图标。您应该能够以这种方式调整填充。
答案 2 :(得分:1)
减少Spinner
的填充,更准确地说是在View
getView()
方法中膨胀的布局中Adapter
的填充。我只是在一个示例项目中试过这个,它显着缩小了差距。
答案 3 :(得分:0)
添加此行spinner.setPadding(0,0,0,0);打开下拉列表时隐藏向下箭头图像。