2017-01-22 70 views
8

我是新来的android应用程序开发,因为我正在创建微调我注意到一个额外的空间/填充垂直下拉列表的微调开始和结束的下拉列表。Android微调删除下拉垂直额外空间/填充

MainActivity.java:

public class MainActivity extends AppCompatActivity 
{ 
    @Override 
    protected void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     Spinner sr = (Spinner) findViewById(R.id.spinner); 
     String[] days = getResources().getStringArray(R.array.days); 
     ArrayAdapter<String> ar = new ArrayAdapter<>(this, R.layout.single_row, days); 
     sr.setAdapter(ar); 
    } 
} 

activity_main.xml中

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:id="@+id/activity_main" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="#666666" 
    tools:context="com.xxxxx.defaultspinner.MainActivity"> 

    <Spinner 
     android:id="@+id/spinner" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_centerHorizontal="true" 
     android:layout_marginTop="20dp" 
     android:spinnerMode="dialog" 
     android:background="#898989"> 

    </Spinner> 

</RelativeLayout> 

single_row.xml

<TextView 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="@string/app_name" 
    android:textColor="#FFFFFF" 
    android:textSize="26sp" 
    android:background="#214161"> 

</TextView> 

enter image description here

enter image description here

我将所有视图的背景设置为不同的颜色,以便我可以识别额外空间/填充的来源。但额外的空间/填充具有白色背景,没有任何视图。

注意这不是因为spinnerMode =“对话框”选项。这种行为也发生在spinnerMode =“dropdown”。我怎样才能删除这个空间?或者我做错了什么?

+0

,我也面临着同样的问题 – Rohit

回答

0

尝试添加这对您的TextView

android:includeFontPadding="false" 

它将删除TextView额外的顶部和底部填充

+0

没有多余的空间/填充不从TextView的,因为TextView中的背景颜色为#214161,其中作为额外的空间/填充背景是#FFFFFF。我也测试了你的答案,结果仍然是一样的 – HeiseN

0

你只需要重写适配器中getDropDownView方法。

@Override 
public View getDropDownView(int position, View convertView, ViewGroup parent) { 
    parent.setPadding(0, 0, 0, 0); 
    return convertView; 
}