我正在尝试设置LinearLayout代码端的宽度。我试图找到一种方法,我可以将我的IcsSpinner的selectedNavigationItem调整为所选的项目大小...当我将xml中的linearLayout设置为某个宽度时,这是实现的...但我需要动态调整大小。
<LinearLayout
android:id="@+id/spinner_ll"
android:layout_width="75dp"
android:layout_height="wrap_content"
android:layout_gravity="right" >
<com.actionbarsherlock.internal.widget.IcsSpinner
android:id="@+id/spinner"
android:layout_width="match_parent"
android:layout_height="match_parent"
/>
</LinearLayout>
有没有办法设置LinearLayout的宽度,而不是孩子?
... UPDATE解答:
LinearLayout.LayoutParams lp = (LinearLayout.LayoutParams)ll.getLayoutParams();
lp.width = 85; // set this to size...this is arbitrary number for proof of concept
ll.requestLayout();
答案 0 :(得分:0)
您可以从以下代码设置布局参数:
LinearLayout layout = (LinearLayout) findViewById(R.id.spinner_11);
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(100 /* in pixels */, LayoutParams.WRAP_CONTENT);
layout.setLayoutParams(layoutParams);
您可以将dps转换为代码,如下所示:
int pixelValue = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 10 /* in dps */, getResources().getDisplayMetrics());
请看一下这里的文档:https://developer.android.com/reference/android/util/TypedValue.html#applyDimension(int,float,android.util.DisplayMetrics)