私は古いスレッドを復活させたくないのですが、これは正しく答えられない問題であり、さらに私自身もこの問題に遭遇しました。
これが長い部分です。答えだけに興味がある場合は、コードまで下にスクロールしてください。
android:gravityとandroid:layout_gravityの動作は異なります。ここでは「私を助けてくれ、私が読んだ記事です。
記事のGIST:重力は高さ/幅が割り当てられた後にビューに影響を与えます。したがって、重心はFILL_PARENTで実行されるビューには影響しません(自動マージンと考えてください)。layout_gravity centerは、FILL_PARENTのビューに影響します(自動パッドと考えてください)。
基本的に、android:layout_gravityはプログラムでアクセスできません。android:gravityのみです。OPの場合と私の場合、受け入れられた回答はボタンを垂直方向の中央に配置しません。
カルティの答えを改善するには:
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
params.gravity = Gravity.CENTER;
button.setLayoutParams(params);
にリンクしLinearLayout.LayoutParams
ます。
android:layout_gravityは「関連するメソッドがありません」を示し、プログラムからアクセスできないことを意味します。一方、重力はクラスのフィールドです。