2017-01-22 113 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; 
}