私は多くの回答を確認しましたが、これまでのところ役に立たなかった。カスタムテキストビューのマージン
私はアンドロイドのTextViewを拡張して、このカスタムビューの余白をコード内に設定しようとしています。これは、ボタンの押下などでインスタンス化するためです。これはLinearLayoutに追加されます。それは私が持っているものです:
public class ResultsView extends TextView {
public ResultsView(Context context) {
super(context);
LinearLayout.LayoutParams layout = new LinearLayout.LayoutParams(
ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
layout.setMargins(15, 15, 15, 15);
setLayoutParams(layout);
}
}
どこでも余裕がありません。
EDIT:xmlに余白の値を代入すると、機能します。
よろしく!本当にありがとう!私は実際には以前と同様のものを試しましたが、onFinishInflateでは動作しませんでした。これがパフォーマンス面でどれくらい良いのか分かりますか?ブール値を追加して、すでに一度設定したかどうかを確認してください。 – tom
私はそのような巨大なパフォーマンスの影響はないと思いますが、もしあなたがそれについて懸念している場合は、フラグを追加して一度だけ行うことができます。 –
おそらく、 onLayout()に渡されます(例えばleft + = leftMargin、right = rightMargin、top + = topMargin、bottom- = bottomMargin、super.onLayout(changed、left、top、right、bottom))。 – kcoppock