【发布时间】:2020-07-15 04:26:12
【问题描述】:
我有两个微调器。他们看起来像那样。不知道为什么下拉菜单图标离文字很远。
在我的activity_main.xml中是这样写的:
<androidx.constraintlayout.motion.widget.MotionLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/map_root_container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:animateLayoutChanges="true"
android:background="@mipmap/map_bg"
android:orientation="vertical"
app:layoutDescription="@xml/map_scroll">
<FrameLayout
android:id="@+id/map_top_panel_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@mipmap/home_top"
android:orientation="vertical"
android:padding="20dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<Spinner
android:id="@+id/map_spinner_sector"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="start|bottom"
android:gravity="end"/>
<Spinner
android:id="@+id/map_spinner_sorting"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|end"
android:gravity="end"/>
</FrameLayout>
...
</androidx.constraintlayout.motion.widget.MotionLayout>
SpinnerAdapter.java 类:
public class SpinnerAdapter extends ArrayAdapter<String> {
public SpinnerAdapter(@NonNull Context context, ArrayList<String> items) {
super(context,0, items);
}
@NonNull
@Override
public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) {
return initView(position, convertView, parent);
}
@Override
public View getDropDownView(int position, @Nullable View convertView, @NonNull ViewGroup parent) {
return initView(position, convertView, parent);
}
private View initView(int position, View convertView, ViewGroup parent){
if (convertView == null){
convertView = LayoutInflater.from(getContext()).inflate(
R.layout.spinner_item, parent, false
);
}
TextView spinnerTextView = (TextView) convertView;
spinnerTextView.setText(getItem(position));
spinnerTextView.setGravity(Gravity.END); //This line is added later
return convertView;
}
}
还有spinner_item.xml文件,就是spinner items的布局:
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<Spinner
android:id="@+id/my_spinner"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
我没有使用 Spinners 的经验。我在学习。我想知道为什么我会遇到这样的错误。
不是:我有 EDITED spinner_item.xml 文件:
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/spinner_text_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="3dp"
android:paddingStart="10dp"
android:paddingEnd="10dp"
android:background="@drawable/suggestions_bg"
android:textColor="@color/blue_popular" />
【问题讨论】:
标签: java android graphics spinner android-spinner