У меня есть следующий файл макета.Я хочу центрировать текст во втором textView.В Android Studio design preview текст центрируется.Однако при запуске приложения оно смещено от центра.
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android">
<FrameLayout
android:id="@+id/root"
android:layout_width="match_parent"
android:layout_height="74dp"
android:background="@color/white">
<com.my.app.MyCustomTextView
android:id="@+id/custom_text_1"
android:layout_width="match_parent"
android:layout_height="45dp"
android:layout_marginLeft="25dp"
android:layout_marginTop="15dp"
android:layout_marginRight="25dp"
android:layout_marginBottom="15dp"
android:background="@drawable/rounded_corner_green"
android:gravity="center"
android:text="Some text here"
android:textColor="@color/white"
android:textSize="16sp" />
<com.my.app.MyCustomTextView
android:id="@+id/custome_text_2"
android:layout_width="20dp"
android:layout_height="20dp"
android:layout_marginTop="5dp"
android:layout_marginEnd="15dp"
android:layout_marginRight="15dp"
android:background="@drawable/circular_red"
android:gravity="center"
android:layout_gravity="end"
android:visibility="gone"
android:includeFontPadding="false"
android:textColor="@color/white"
android:textSize="16sp" />
</FrameLayout>
</layout>
Вот как это выглядит (0 не в центре)
Как ни странно, если я заменю свой пользовательский textView на TextView
, текст будет идеально отцентрирован.
Это MyCustomTextView
public class MyCustomTextView extends TextView {
public MyCustomTextView (Context context) {
super(context);
initView();
}
public MyCustomTextView (Context context, AttributeSet attrs) {
super(context, attrs);
initView();
}
public MyCustomTextView (Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
initView();
}
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
public MyCustomTextView (Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
super(context, attrs, defStyleAttr, defStyleRes);
initView();
}
//here the typeface is set on the TextView after creating typeface from font asset
private void initView() {
CommonUtils.setCustomFontForText(MyApplication.getAppContext(), MyCustomTextView.this);
}
}
Может кто-нибудь мне помочь?Что здесь не так?Спасибо !!