プログラムでビューの右余白を変更するには?質問する

プログラムでビューの右余白を変更するには?質問する

この属性は Java コード内で動的に変更できますか?

android:layout_marginRight

がありTextView、位置を数ピクセル左に動的に変更する必要があります。

プログラムでそれを実行するにはどうすればいいですか?

ベストアンサー1

編集: レイアウト タイプに依存しない、より一般的な方法 (余白をサポートするレイアウト タイプであること以外):

public static void setMargins (View v, int l, int t, int r, int b) {
    if (v.getLayoutParams() instanceof ViewGroup.MarginLayoutParams) {
        ViewGroup.MarginLayoutParams p = (ViewGroup.MarginLayoutParams) v.getLayoutParams();
        p.setMargins(l, t, r, b);
        v.requestLayout();
    }
}

ドキュメントを確認してくださいテキストビュー基本的には、TextView の LayoutParams オブジェクトを取得し、余白を変更してから TextView に戻します。LinearLayout 内にあると仮定して、次のように試してください。

TextView tv = (TextView)findViewById(R.id.my_text_view);
LinearLayout.LayoutParams params = (LinearLayout.LayoutParams)tv.getLayoutParams();
params.setMargins(0, 0, 10, 0); //substitute parameters for left, top, right, bottom
tv.setLayoutParams(params);

今はテストできないので、キャストが少しずれている可能性がありますが、マージンを変更するには LayoutParams を変更する必要があります。

注記

TextViewが例えば相対レイアウト、使用すべきである相対レイアウト.レイアウトパラメータLinearLayout.LayoutParamsの代わりに

おすすめ記事