【问题标题】:android: gap between icon and spinnerandroid:图标和微调器之间的间隙
【发布时间】:2013-02-14 12:41:57
【问题描述】:

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

在主activity中,actionbar中有一个spinner(收件箱、已发送等)并且没有标题。

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

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

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

非常感谢, 马丁

【问题讨论】:

    标签: android android-actionbar spinner space gaps-in-visuals


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      谢谢大家的回答。 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。

      【讨论】:

      • 幸好你在这里发布你的解决方案。但是请记住对您有帮助的答案;)
      • 嗨,马蒂斯。我很乐意,但我需要 15 个声望点才能做到这一点,我还没有 :-)
      • 哈哈,完全忘记了这个。给你;)
      【解决方案3】:

      减少Spinner 的填充,更准确地说是在Adapter 的getView() 方法中膨胀的布局中View 的填充。我刚刚在一个示例项目中尝试过,它大大缩小了差距。

      【讨论】:

        【解决方案4】:

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

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

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

        【讨论】:

        • 嗨,听起来很合理,但这并没有给我带来预期的结果:)
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-12-28
        • 2018-03-29
        • 2016-01-09
        • 2013-10-31
        • 2018-10-14
        • 1970-01-01
        相关资源
        最近更新 更多