Android: текст в пользовательском текстовом виде не центрируется - PullRequest
0 голосов
/ 06 февраля 2019

У меня есть следующий файл макета.Я хочу центрировать текст во втором 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 не в центре)

enter image description here

Как ни странно, если я заменю свой пользовательский textView на TextView, текст будет идеально отцентрирован.

enter image description here

Это 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);
    }
}

Может кто-нибудь мне помочь?Что здесь не так?Спасибо !!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...