首页 > 解决方案 > 在我的代码中向微调器添加约束

问题描述

我的应用程序中有一个代码,当您单击 FAB 时,会出现一个微调器。当我在屏幕尺寸很小的手机上进行测试时,微调器显示在右侧。但是当我在更大的手机屏幕尺寸上尝试时,微调器似乎缩小并且部分隐藏。

是否可以在此处向我的代码添加约束,以便微调器的大小会根据屏幕的大小而变化,并且不会被部分切断/隐藏?

代码:

SearchableSpinner spinner = (SearchableSpinner) makeSpinner();
                mLinearLayout.addView(spinner); //Add another spinner


                LinearLayout.LayoutParams layoutParams = (LinearLayout.LayoutParams)spinner.getLayoutParams();
                layoutParams.setMargins( 5,  130,  10,  0);
                layoutParams.height = 80;//pixels
                layoutParams.width = 240;//pixels
                spinner.setLayoutParams(layoutParams);

标签: androidconstraintsspinner

解决方案


为了使您的微调器在不同的屏幕尺寸上具有一致的尺寸/外观,您必须使用 DP(密度独立像素)而不是简单的像素。

我建议您做的是通过使用以下方法将 DP 转换为像素,将您的 layout.height/width 设置为特定的 DP:

public static float convertDpToPixel(float dp, Context context){
    Resources resources = context.getResources();
    DisplayMetrics metrics = resources.getDisplayMetrics();
    float px = dp * ((float)metrics.densityDpi / DisplayMetrics.DENSITY_DEFAULT);
    return px;
}

祝你好运 :)


推荐阅读