我的布局有问题,如果有些Android专家可以检查并帮助我,那就太好了。)
我有一个包含另一个FragmentB的FragmentA。
FragmentA包含3个FrameLayouts:
FragmentB还包含1个FrameLayout:
frameLayout.addView(new ImageClass(id);
问题是,图像不是在中间水平居中。
这是第一个fragmentA的布局文件:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:gravity="center_horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent">
<FrameLayout
android:id="@+id/frame1"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<FrameLayout
android:id="@+id/frame2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/frame1" />
<FrameLayout
android:id="@+id/frame3"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true" />
</RelativeLayout>
这是fragmentB的布局文件(包含在FragmentA中 - &gt;带有ID帧2的FrameLayout 2)
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/imageClass"
android:background="#0000FF"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
</FrameLayout>
图像将通过画布插入到视图中,并带有以下代码:
Bitmap image= BitmapFactory.decodeResource(getResources(), id);
canvas.drawBitmap(image, 0, 0, null);
我认为android:gravity="center_horizontal"
中的RelativeLayout
和android:layout_width="wrap_content"
和FrameLayouts
的{{1}}中的FragmentA
都认为集中。但它在左侧。
它有两个截图(第一个)以及它应该如何显示(第二个):
对不起链接,但我无法发布图片(不是声望)
答案 0 :(得分:0)
RelativeLayouts处理重力的方式与您预期的不同(link):
请注意,由于RelativeLayout认为每个孩子相对于彼此的定位很重要,因此设置重力会影响所有孩子在父母中作为单个单位的定位。儿童相对定位后会发生这种情况。
快速解决方法是将frame2从FrameLayout更改为RelativeLayout,添加match_parent宽度并将中心重力放在其上。
<RelativeLayout
android:id="@+id/frame2"
android:gravity="center_horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/frame1"/>
根据视图的要求,您可以采取许多其他方法。通常最好避免嵌套RelativeLayouts,但在你的情况下可能是必要的。
可能重复here。