75

これは私の見解であり、layout_width を「10dip」に変更したいと考えています。プログラムでどのように行うのですか? これは LinearLayout ではなく、View であることに注意してください。

<View 
    android:id="@+id/nutrition_bar_filled" 
    android:background="@drawable/green_rectangle" 
    android:layout_height="30dp"
    android:layout_width="50dp"/>       

私はLayoutParamsについて知っています。幅を 10dip に設定するにはどうすればよいですか?

4

5 に答える 5

175

あなたの質問は、ビューの幅のみを動的に変更することだと思いますが、上記のメソッドはレイアウト プロパティを完全に新しいものに変更するため、最初にビューから getLayoutParams() を取得し、次に layoutParams に幅を設定し、最後に layoutParams をビューに設定することをお勧めします。したがって、以下の手順に従って同じことを行います。

View view = findViewById(R.id.nutrition_bar_filled);
LayoutParams layoutParams = view.getLayoutParams();
layoutParams.width = newWidth;
view.setLayoutParams(layoutParams);
于 2012-04-15T07:33:29.860 に答える
13

または単に:

view.getLayoutParams().width = 400;
view.requestLayout();
于 2016-01-29T12:27:20.180 に答える
10

使ってみて

View view_instance = (View)findViewById(R.id.nutrition_bar_filled);
view_instance.setWidth(10);

Layoutparamsを使用 して、以下のように幅と高さを設定できます。

LayoutParams lp = new LayoutParams(10,LayoutParams.wrap_content);
View_instance.setLayoutParams(lp);
于 2012-04-15T04:14:59.110 に答える