Im пытается установить гравитацию = «снизу» на LinearLayout, поэтому его дети. Представления стека внизу.Вертикальный LinearLayout гравитация не работает, как показано на рисунке
Проблема в том, что когда я проверяю его на Eclipse, это кажется прекрасным, но когда я запускаю AVD, он не работает. Это просто работает, как если бы гравитация была установлена на вершину.
Вот мой код:
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="16dp" >
<com.pepotegames.spotthedifferences.SquareImageView
android:id="@+id/picture"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="centerCrop" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:gravity="bottom"
android:weightSum="4" >
<ImageView
android:id="@+id/stars"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:src="@drawable/stars"
android:background="#55000000"
android:adjustViewBounds="true" />
</LinearLayout>
Вот как это выглядит в Eclipse, и как это должно работать:
http://i.imgur.com/ddHJK5S.png
EDIT: BTW мои SquareImageView его просто расширенный ImageView. Проблема не имеет к этому никакого отношения, я уже тестировал один и тот же макет с обычным ImageView и теми же результатами.
В случае, если вы хотите проверить это, вот это:
public class SquareImageView extends ImageView {
public SquareImageView(Context context) {
super(context);
}
public SquareImageView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public SquareImageView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
setMeasuredDimension(getMeasuredWidth(), getMeasuredWidth());
}
}
является FrameLayout обязательно для макета, если сейчас вы должны переключиться на RelativeLayout для лучшего выравнивания. –
На самом деле это так, потому что мне нужны звезды для рендеринга над изображением. Здесь вы можете увидеть пример окончательного вида: http://puu.sh/4kKq9.jpg Этот макет используется внутри GridView –