@Hakito

Почему размеры view равны нулю?

хочу сделать свой RelativeLayout, ширина которого, всегда будет равна высоте, тоесть, он будет квадратным. Для этого наследуюсь от него и переопределяю onMeasure
public class SquareRelativeLayout extends RelativeLayout {
    public SquareRelativeLayout(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    @Override
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
        int h = MeasureSpec.getSize(heightMeasureSpec);

        setMeasuredDimension(h, h);
    }
}


В разметке пишу:
<hakito.autosim.views.SquareRelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content" android:layout_height="match_parent"
    android:background="@drawable/btn_back"
    android:clickable="true"
    android:padding="2dp">

    <ImageView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/image"
       />
  
</hakito.autosim.views.SquareRelativeLayout>


Layout получается квадратным, как и нужно, но вот все то, что я помещаю внутри него, не отображается. Прижимается левому верхнему углу, а размеры равны нулю, даже если прописывать абсолютные размеры в свойствах.
Пожалуйста, подскажите, как это исправить?
  • Вопрос задан
  • 102 просмотра
Пригласить эксперта
Ответы на вопрос 1
orcDamnar
@orcDamnar
Java, C/C++, Android SDK
ну в вашем коде я у

<ImageView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/image"
       />



абсолютно не вижу никаких правил для размещения - потому оно и будет прижато к правому углу. Также не вижу вашей реализации onLayout чтобы принудительно куда-нибудь его засунуть. Кроме того очень плохо делать у чилда match_parent а у родителя wrap_content
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы