我在一个动态创建的画布中有一个带食物单位的旋转器。适配器中的单位显示为全文。每当我从微调器中选择一个单元时,由于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>