如何以编程方式向微调框添加边距?

时间:2019-11-21 12:25:35

标签: android android-spinner layoutmargins

我想以编程方式创建一个带有margin = Xdp的微调器,然后将其添加到LinearLayout中。我认为可以使用LayoutParams来实现,但是我没有运气。

  val spinnerLanguage = Spinner(context).apply {
            val value = Cals.dpToPx(context, 15)
            this.setPadding(value, value, value, value)
            this.adapter = SpinnerBaseChoiceSelectionAdapter(context, R.layout.simple_spinner_item, data)

            val params =  ViewGroup.MarginLayoutParams(
                ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT
            )
            params.setMargins(0, value, 0, value)
            this.rootView.layoutParams = params
        }

  spinnerHolderLayout.addView(spinnerLanguage)
  spinnerHolderLayout.addView(spinnerLanguage)
  spinnerHolderLayout.addView(spinnerLanguage)

结果在它们之间没有边距

enter image description here

1 个答案:

答案 0 :(得分:1)

使用LayoutParams

Look at this example

例如:

LayoutParams lp = (RelativeLayout.LayoutParams) spinnerLanguage.getLayoutParams();
            // Set spinner margin (Left Top Right Bottom)
            lp.setMargins(25,25,25,25);

            // Update parameters to spinner
            spinnerLanguage.setLayoutParams(lp);
相关问题