0
私は.xml
スタイルを持っていると仮定します。カスタムビューの属性でスタイルを渡すときにテキストが太字にならないのはなぜですか?
<style name="MaterialPreviewDetailsTextSmall">
<item name="android:layout_marginLeft">@dimen/material_margin</item>
<item name="android:textColor">@color/material_preview_backgroud</item>
<item name="android:textSize">@dimen/material_normal_smal_text</item>
<item name="android:textStyle">bold</item>
</style>
私は、属性によってカスタムビューに渡したい:
カスタムビュー内<pl.valueadd.ledoc.view.ViewPreviewRow
...
app:view_title="@string/equipment_overview_id_label"
app:view_title_style="@style/MaterialPreviewDetailsTextSmall"/>
私はスタイル属性を取得し、TextView
に適用:
public class ViewPreviewRow extends RelativeLayout {
TextView tvTitle;
public ViewPreviewRow(Context context, AttributeSet attrs) {
super(context, attrs);
init(context, attrs);
}
private void init(Context context, AttributeSet attrs) {
initView(context);
obtainStyledAttributes(context, attrs);
}
private void obtainStyledAttributes(Context context, AttributeSet attrs) {
TypedArray attributes = context.obtainStyledAttributes(attrs, R.styleable.ViewPreviewRow);
CharSequence text = attributes.getString(R.styleable.ViewPreviewRow_view_title);
if (text != null) {
tvTitle.setText(text);
} else {
throw new NullPointerException("Attribute view_title cannot be null");
}
int appearance = attributes.getResourceId(R.styleable.ViewPreviewRow_view_title_style, 0);
if (appearance != 0) {
setTextViewAppearance(tvTitle, appearance);
tvTitle.requestLayout();
}
...
attributes.recycle();
}
質問です:
なぜテキストに適切な色、サイズ、marginLeftがあるのですか?太字ではありませんか?