[解決済み】プログラムによってビューの右マージンを変更できますか?
2022-04-17 03:13:42
質問
この属性はJavaコードで動的に変更することができますか?
android:layout_marginRight
を持っています。
TextView
その位置は、動的に左側に数ピクセル変更する必要があります。
プログラム的に行うには?
どのように解決するのですか?
EDIT: レイアウトタイプに依存しない、より一般的な方法です(余白をサポートするレイアウトタイプであること以外)。
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がたとえば リラティブレイアウト を使用する必要があります。 RelativeLayout.LayoutParams。 の代わりに LinearLayout.LayoutParams
関連
-
Android studio 制約レイアウト ConstraintLayout
-
[解決済み] Androidのソフトキーボードをプログラムで閉じる/隠すにはどうすればよいですか?
-
[解決済み] 画面サイズ、現在のウェブページ、ブラウザウィンドウのサイズを取得する
-
[解決済み] Androidで画面の大きさをピクセル単位で取得する方法
-
[解決済み] グリッドレイアウトにおけるフリングジェスチャーの検出
-
[解決済み] TextViewのリンクをクリック可能にする方法
-
[解決済み] AndroidでTextViewをスクロール可能にする
-
[解決済み] TextViewの中に複数のスタイルを持たせることは可能ですか?
-
[解決済み】「px」、「dip」、「dp」、「sp」の違いは?
-
[解決済み】TextViewにプログラムで左のdrawableを設定する。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
aapt2エラー:ログを確認する(具体的な原因の探り方)
-
デフォルトのアクティビティが見つからない場合の対処法
-
最新のandroidプロジェクトディレクトリにあるarmeabi-v7aとarmeabiの具体的な意味とその違いを教えてください。
-
Android開発で「Attempt to invoke virtual method 'XXX()' on null object reference」というヌルポインター例外に遭遇する。
-
アプリケーションがメインスレッドで過剰に作業している可能性があります。
-
JVMのエラーに遭遇しました。Java Runtime Environmentによって致命的なエラーが検出されました。
-
Windowsのadbシェルでデータディレクトリにアクセスするとパーミッションが拒否される
-
Android カスタムスピナーコントロールのドロップダウン・ボックスの実装
-
ConstraintLayoutのいくつかのプロパティの概要(RelativeLayoutの強化版、LinearLayoutの比例プロパティを含む、階層ツールの削減)。
-
Android ProgressBarのスタイルカラーを変更する