我是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>
我将所有视图的背景设置为不同的颜色,以便我可以识别额外空间/填充的来源。但额外的空间/填充具有白色背景,没有任何视图。
注意这不是因为 spinnerMode =“dialog”选项。 spinnerMode =“dropdown”时也会发生此行为。我怎样才能删除这个空间?或者我做错了什么?
答案 0 :(得分:4)
您只需要覆盖适配器中的getDropDownView方法。
@Override
public View getDropDownView(int position, View convertView, ViewGroup parent) {
parent.setPadding(0, 0, 0, 0);
return convertView;
}
答案 1 :(得分:0)
尝试将此添加到您的TextView
android:includeFontPadding="false"
它将移除TextView
额外的顶部和底部填充