选择项目后调整微调器的大小

时间:2015-02-04 15:32:06

标签: android spinner

我在一个动态创建的画布中有一个带食物单位的旋转器。适配器中的单位显示为全文。每当我从微调器中选择一个单元时,由于tablerow的高度限制,我用缩写替换完整的发短信单元。我没有做的是为微调器的高度Layoutparams设置WRAP_CONTENT,因此tablerow的高度被限制在新的较小高度。它仅适用于固定的硬编码像素大小。有没有办法可以实现这个目标?

这里是微调器的OnItemSelectedListener方法中的代码:

    mUnitsSpinner.setOnItemSelectedListener(new OnItemSelectedListener() {
    @Override
    public void onItemSelected(AdapterView<?> parent, View view,
            int pos, long id) {
    ....

        LayoutParams lp = mUnitsSpinner.getLayoutParams();
        lp.width = LayoutParams.MATCH_PARENT;
        lp.height = (int) getResources().getDimension(R.dimen.units_spinner_height); //this is not what I want
        mUnitsSpinner.setLayoutParams(lp);

        Log.i(TAG, "unitsCursor's position = " + unitsCursor.getPosition());
    }

    @Override
    public void onNothingSelected(AdapterView<?> parent) {
        unitsCursor.moveToPosition(MAIN_TABLE);
    }
});

这是桌面布局:

 <?xml version="1.0" encoding="utf-8"?>
<TableRow xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@drawable/button_no_gradient_brown_up_stroke_final" >

    <TextView
        android:id="@+id/food"
        android:layout_width="100dp"
        android:layout_height="wrap_content"
        android:gravity="center_vertical|left"
        android:padding="3dp"
        android:textColor="@android:color/holo_green_dark"
        android:textSize="10sp" />
    <!--
    <TextView
        android:id="@+id/units"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:ellipsize="none"
        android:gravity="center"
        android:paddingBottom="3dp"
        android:paddingTop="3dp"
        android:scrollHorizontally="true"
        android:textColor="@android:color/holo_green_dark"
        android:textSize="8sp" />
    -->

    <Spinner
        android:id="@+id/units"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:background="@android:color/transparent"
        android:gravity="center"
        android:paddingBottom="3dp"
        android:paddingTop="3dp"
        android:textColor="@android:color/holo_green_dark" />

    <EditText
        android:id="@+id/quantity"
        android:layout_width="40dp"
        android:layout_height="match_parent"
        android:background="@android:color/transparent"
        android:gravity="center"
        android:hint="@string/quantity_edittext"
        android:imeOptions="actionDone"
        android:inputType="number|numberDecimal"
        android:paddingBottom="3dp"
        android:paddingTop="3dp"
        android:textColor="@android:color/holo_green_dark"
        android:textColorHint="@android:color/holo_green_dark"
        android:textSize="10sp" />

    <TextView
        android:id="@+id/kcal"
        android:layout_width="45dp"
        android:layout_height="match_parent"
        android:gravity="center"
        android:paddingBottom="3dp"
        android:paddingTop="3dp"
        android:textColor="@android:color/holo_green_dark"
        android:textSize="10sp" />

    <TextView
        android:id="@+id/carbs"
        android:layout_width="40dp"
        android:layout_height="match_parent"
        android:gravity="center"
        android:paddingBottom="3dp"
        android:paddingTop="3dp"
        android:textColor="@android:color/holo_green_dark"
        android:textSize="10sp" />

    <TextView
        android:id="@+id/proteins"
        android:layout_width="40dp"
        android:layout_height="match_parent"
        android:gravity="center"
        android:paddingBottom="3dp"
        android:paddingTop="3dp"
        android:textColor="@android:color/holo_green_dark"
        android:textSize="10sp" />

    <TextView
        android:id="@+id/fat"
        android:layout_width="30dp"
        android:layout_height="match_parent"
        android:gravity="center"
        android:paddingBottom="3dp"
        android:paddingTop="3dp"
        android:textColor="@android:color/holo_green_dark"
        android:textSize="10sp" />

</TableRow>

0 个答案:

没有答案