【问题标题】:Making custom layout that should fullfit the spinner制作应该完全适合微调器的自定义布局
【发布时间】:2018-05-27 10:41:40
【问题描述】:

我的微调器受限于指南,并根据屏幕大小更改其大小。然后是我的问题。我有这个

它的 custom_spinner.XML 它的宽度和高度是匹配约束
我的自定义适配器

     public class MyCustomSpinnerAdapter extends ArrayAdapter<MySpinnerData> 
{
    private Context context;
    private List<MySpinnerData> spinnerData;
    private boolean Car = false;
    private String initialText;
    private boolean alignLeft = false;

    public MyCustomSpinnerAdapter(@NonNull Context context,@LayoutRes int resource,List<MySpinnerData> spinnerData) 
    {
        super(context, resource,spinnerData);
        spinnerData = spinnerData;
        context = context;
    }
    @NonNull
    @Override
    public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) 
    {
        return myCustomSpinnerView(position, convertView, parent ); 
    }

    @Override
    public View getDropDownView(int position, @Nullable View convertView, @NonNull ViewGroup parent) 
    {
        return myCustomSpinnerView(position, convertView, parent);
    }
    private View myCustomSpinnerView(int position, @Nullable View myView, @NonNull ViewGroup parent)
    {
        LayoutInflater layoutInflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        View customview = layoutInflater.inflate(R.layout.spinner_layout,parent,false);
        TextView textView = (TextView)customview.findViewById(R.id.textView);
        textView.setText(spinnerData.get(position).getIconName());  //function that set text
        return customview;
    }
}


这就是我得到的


这是 custom_spinner.XML

<TextView
    android:id="@+id/textView"
    android:layout_width="0dp"


    android:layout_height="0dp"
    android:background="@drawable/my_border"
    android:fadeScrollbars="false"
    android:fontFamily="@font/titillium_web"
    android:gravity="center_horizontal|center_vertical"
    android:text="simple"
    android:textColor="@android:color/background_light"
    android:textSize="18sp"
    android:textStyle="bold"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toStartOf="@+id/guideline4"
    app:layout_constraintHorizontal_bias="0.0"
    app:layout_constraintStart_toStartOf="@+id/guideline2"
    app:layout_constraintTop_toTopOf="parent"
    app:layout_constraintVertical_bias="0.0" />

<ImageView
    android:id="@+id/imageView3"
    android:layout_width="23dp"
    android:layout_height="23dp"
    android:layout_marginBottom="8dp"
    android:layout_marginStart="8dp"
    android:layout_marginTop="8dp"
    app:layout_constraintBottom_toBottomOf="@+id/textView"
    app:layout_constraintStart_toStartOf="@+id/textView"
    app:layout_constraintTop_toTopOf="@+id/textView"
    app:srcCompat="@drawable/autic" />

<android.support.constraint.Guideline
    android:id="@+id/guideline2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="vertical"

    app:layout_constraintGuide_percent="0.00" />

<android.support.constraint.Guideline
    android:id="@+id/guideline4"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="vertical"

    app:layout_constraintGuide_percent="1" />


这是activity_main.XML(微调器)

<Spinner
    android:id="@+id/Tablice"
    android:layout_width="0dp"


    android:layout_height="89dp"
    android:layout_marginBottom="8dp"
    android:layout_marginEnd="6dp"
    android:layout_marginTop="8dp"

    android:background="@null"

    android:popupBackground="@color/uplatiParkingDugme"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toStartOf="@+id/TablicaDugme"
    app:layout_constraintHorizontal_bias="0.0"
    app:layout_constraintStart_toStartOf="@+id/guideline"
    app:layout_constraintTop_toTopOf="parent"
    app:layout_constraintVertical_bias="0.25"

    />

宽度完全适合,但是一旦我将匹配约束设置为 custom_spinner 的宽度参数,下拉项就不会显示?

谁能帮帮我?我坚持了一个星期..

【问题讨论】:

  • 这是一个布局问题,您正在发布 java 代码.. 干得好
  • @Sam 我添加了 XML 代码,抱歉
  • 所有我能看到的都是宽度0 dp
  • @Sam 没必要粗鲁。如果您不想帮助 OP,请不要发表评论。
  • @ClassA。提到他们的宽度0 dp 是粗鲁的吗?嗯学到了新东西。

标签: android view constraints spinner


【解决方案1】:

添加后

customview.measure(0,0);


MyCustomSpinnerView 方法中,它可以工作
但它显示的项目高度较低,而不是实际微调器的高度?
测量函数有什么作用,为什么它现在可以工作?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多