繁体   English   中英

Android Spinner具有不同的描述标签高度

[英]Android Spinner with description-label different heights

我正在使用微调器来选择数量以重新计算配方成分的数量。 我有一个水平LinearLayout,它添加了一个label(TextView)来描述微调器,然后是微调器。

首次加载活动时,标签的位置比微调框高一点,当我选择一个项目时,它会校正其高度。

我该如何解决?

我的微调器加载方法的代码:

// Horizontal LinearLayout for displaying label + spinner
LinearLayout spinnerLayout = new LinearLayout(getApplicationContext());
spinnerLayout.setOrientation(LinearLayout.HORIZONTAL);
spinnerLayout.setLayoutParams( new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,LinearLayout.LayoutParams.WRAP_CONTENT));

// Textview for description
TextView lblAmount = new TextView(getApplicationContext());
lblAmount.setText("Quantity:");
lblAmount.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT));
lblAmount.setTextColor(Color.parseColor("#161618"));
spinnerLayout.addView(lblAmount);

// add spinner
ArrayList<Integer> spinnerArray = new ArrayList<Integer>();
for(int i = 1; i<= 10; i++) {
    spinnerArray.add(i);
}

final Spinner spnIngredientQuantity = new Spinner(this);
ArrayAdapter<Integer> spinnerArrayAdapter = new ArrayAdapter<Integer>(this, android.R.layout.simple_spinner_dropdown_item, spinnerArray);
spnIngredientQuantity.setAdapter(spinnerArrayAdapter);
spnIngredientQuantity.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT));

spinnerLayout.addView(spnIngredientQuantity);
if(firstLoad) {     
    spnIngredientQuantity.setSelection(spinnerArrayAdapter.getPosition(recipe.getDefaultAmount()));
    firstLoad = false;
}

spnIngredientQuantity.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
    @Override
    public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
        reloadIngredients((int) spnIngredientQuantity.getSelectedItem());
    }

    @Override
    public void onNothingSelected(AdapterView<?> parent) {
        // Use default Quantity
    }
});
scrollLayout.addView(spinnerLayout);

我认为可能是这样的事实,我将spinnerLayout的高度设置为WRAP_CONTENT,因此当TextView进入时它会更小。稍后,SpinnerLayout会占用更多的高度空间,但textView不会更新。

这可能是问题吗?

编辑:附加的屏幕截图 上:上一个,下:下一个

我不知道是什么真正导致了问题,但我通过将textView水平居中来解决了问题:

spinnerLayout.setGravity(Gravity.CENTER_VERTICAL);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM