0

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 の幅を設定する方法はありますか?

更新...答え:

LinearLayout.LayoutParams lp = (LinearLayout.LayoutParams)ll.getLayoutParams();
lp.width = 85;  // set this to size...this is arbitrary number for proof of concept
ll.requestLayout();
4

1 に答える 1

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)

于 2012-10-11T14:35:49.390 に答える