Макет Android с соотношением сторон не может показать childs, который относится к родителю
Я пытаюсь сделать RelativeLayout
с соотношением сторон 2:1. Макет изменяет размеры должным образом, а также ImageView
в этом RelativeLayout
выглядит хорошо. Но TextView
не видно, и это из-за атрибута android:layout_centerInParent="true"
Использование любого из атрибутов, которые выравнивают, центрирует и т. Д. Родительских причин, что представление не видно. Как это исправить?
MyRelativeLayout:
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
// TODO Auto-generated method stub
super.onMeasure(MeasureSpec.makeMeasureSpec(widthMeasureSpec, MeasureSpec.EXACTLY),
MeasureSpec.makeMeasureSpec(widthMeasureSpec/2, MeasureSpec.EXACTLY));
}
<com.stikyapp.MyRelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<ImageView android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="fitXY"
android:src="@color/green"/>
<TextView android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text="textView1"/>
</com.stikyapp.MyRelativeLayout>
Если я использую соотношение сторон 1:1, которое является квадратным, все это работает с этим кодом
super.onMeasure(widthMeasureSpec, widthMeasureSpec);
1 ответ
Я думаю, что вы можете использовать AspectRatioLayout
<com.sherlock.aspectratio.AspectRatioLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:widthHeightRatio="2" >
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<!-- your imageview -->
</RelativeLayout>
</com.sherlock.aspectratio.AspectRatioLayout>