从微调器下拉列表中删除边距

我有一个如下图所示的旋转器;

在此处输入图像描述

如何消除微调器及其下拉列表左侧x上的间隙 – 最好是一个适用于API8的解决方案,因为我试图尽可能降低我的应用程序要求。

我曾经假设这将是在spinners风格中的layout_margin,但在阅读这个问题后,它似乎不可能。

在我的主题中,我有;

 @style/DropDownStyle @style/DropDownStyle   true @drawable/dropdowntop   fill_parent fill_parent 0dp 0dp true @drawable/dropdownback @drawable/dropdownback #FFF000  

谢谢,托马斯

额外; 我可以看到可能有一种方法可以自己在代码中popup一个popup窗口 – 如果有必要,我可以以某种方式进入适配器popup视图吗? (这是它显示的列表)。 尝试从头开始重新创建整个适配器行为似乎是一种可怕的方式 – 但如果我可以进入该视图并禁用正常的popup行为,那么我可以创建自己的popup窗口,而不会产生烦人的偏移。

Solutions Collecting From Web of "从微调器下拉列表中删除边距"

似乎您需要扩展Spinner视图以创建显示项目列表的自己的AlertDialog,或者您可以使用的更新版本(API 16+)

android:dropDownHorizontalOffset="-8dp"

在这里查看完整的详细信息: 如何更改打开的微调器的位置?

你想要的是这样的吗?

在此处输入图像描述

如果是这样,这里是代码(直到API级别9):

活动:

 public class MainActivity extends Activity { public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Spinner spinnerListOptions = (Spinner) findViewById(R.id.spinner); ArrayAdapter adapterListOptions = ArrayAdapter.createFromResource(this, R.array.string_array, R.layout.spinner_item_top); adapterListOptions.setDropDownViewResource(R.layout.spinner_item_dropdown); spinnerListOptions.setAdapter(adapterListOptions); } } 

spinner_item_top.xml:

 < ?xml version="1.0" encoding="utf-8"?>   

spinner_item_dropdown.xml:

 < ?xml version="1.0" encoding="utf-8"?>   

activity_main.xml中:

 < ?xml version="1.0" encoding="utf-8"?>    

strings.xml中:

   item 1 item 2 item 3   

试试这个,这应该有效

   

我不确定,但将其添加到DropDownStyle

  0dp 

或者你可以分享ui层次结构截图

我不t know it is possible, because all view item like Spinner, EditText, etc... are small images in the android SDK. You should check, is there any default padding in the 9patched SDK image, if yes, I think you can t know it is possible, because all view item like Spinner, EditText, etc... are small images in the android SDK. You should check, is there any default padding in the 9patched SDK image, if yes, I think you can执行此操作。 另外,不要忘记检查Android的源代码中的Spinner类,也许有一些技巧。