Android,XML(gravity = top无法正常工作(截图))

知识为进步之母,而进步又为富强之源泉。这篇文章主要讲述Android,XML:gravity = top无法正常工作(截图)相关的知识,希望能为你提供帮助。
这是一个奇怪的:
我有这么简单的代码:

< LinearLayout android:orientation="vertical" android:gravity="top" android:layout_gravity="top" android:layout_weight="600" android:layout_width="0dp" android:layout_height="match_parent"> < ImageView android:layout_gravity="top" android:src="https://www.songbingjia.com/android/@drawable/button_category_adventure" android:id="@+id/img_userpic_recview_comments" android:layout_width="wrap_content" android:layout_height="wrap_content" /> < /LinearLayout>

并收到这个结果:
Android,XML(gravity = top无法正常工作(截图))

文章图片

显然,imageview在其布局中是中心而不是在TOP上。为什么会这样?
这是完整的xml:
< ?xml version="1.0" encoding="utf-8"?> < LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:background="#ffffff" android:layout_width="match_parent" android:layout_height="wrap_content"> < LinearLayout android:orientation="vertical" android:layout_width="match_parent" android:layout_height="12dp" /> < LinearLayout android:orientation="horizontal" android:layout_width="match_parent" android:layout_height="wrap_content"> < LinearLayout android:orientation="vertical" android:layout_weight="50" android:layout_width="0dp" android:layout_height="match_parent" /> < LinearLayout android:orientation="vertical" android:gravity="top" android:layout_gravity="top" android:layout_weight="600" android:layout_width="0dp" android:layout_height="match_parent"> < ImageView android:layout_marginTop="-10dp" android:layout_gravity="top" android:src="https://www.songbingjia.com/android/@drawable/button_category_adventure" android:id="@+id/img_userpic_recview_comments" android:layout_width="wrap_content" android:layout_height="wrap_content" /> < /LinearLayout> < LinearLayout android:orientation="vertical" android:layout_weight="3634" android:layout_width="0dp" android:layout_height="match_parent"> < LinearLayout android:orientation="vertical" android:layout_width="match_parent" android:layout_height="wrap_content"> < TextView android:id="@+id/txt_username_recview_comments" android:textColor="#000000" android:text="USERNAME" android:textSize="15sp" android:layout_width="wrap_content" android:layout_height="wrap_content" /> < TextView android:id="@+id/txt_rankname_recview_comments" android:textColor="#000000" android:text="traveler" android:textSize="10sp" android:layout_width="wrap_content" android:layout_height="wrap_content" /> < /LinearLayout> < LinearLayout android:orientation="vertical" android:layout_width="match_parent" android:layout_height="wrap_content"> < TextView android:id="@+id/txt_comments_recview_comments" android:textColor="#000000" android:textSize="13sp" android:text="Wow, that looks like it was so much fun and I don’t hate you at all for this! You look so pretty!! Right, this is actually me! HAHA! So, I guess I am the pretty one, am I not? ; D" android:layout_width="wrap_content" android:layout_height="wrap_content" android:paddingTop="2dp" android:paddingBottom="2dp" /> < /LinearLayout> < LinearLayout android:orientation="horizontal" android:layout_weight="10" android:layout_width="match_parent" android:layout_height="0dp"> < LinearLayout android:orientation="vertical" android:layout_weight="5" android:layout_width="0dp" android:layout_height="match_parent"> < TextView android:id="@+id/txt_date_recview_comments" android:textColor="#000000" android:text="01.01.2020" android:textSize="11sp" android:layout_width="wrap_content" android:layout_height="wrap_content" /> < /LinearLayout> < LinearLayout android:orientation="vertical" android:gravity="right" android:layout_weight="5" android:layout_width="0dp" android:layout_height="match_parent"> < ImageView android:id="@+id/img_dots_horizontal" android:layout_gravity="center|right" android:src="https://www.songbingjia.com/android/@drawable/general_btn_dots_horizontal" android:background="@drawable/ripple" android:layout_width="wrap_content" android:layout_height="match_parent" /> < /LinearLayout> < /LinearLayout> < /LinearLayout> < LinearLayout android:orientation="vertical" android:layout_weight="536" android:layout_width="0dp" android:layout_height="match_parent" /> < /LinearLayout> < /LinearLayout> Thank you all so far for the help!

答案试试这个并调整你的上边距。
< LinearLayout android:orientation="vertical" android:gravity="top" android:layout_gravity="top" android:layout_weight="600" android:layout_width="0dp" android:layout_height="match_parent"> < ImageView android:layout_gravity="top" android:layout_marginTop="-20dp" android:src="https://www.songbingjia.com/android/@drawable/button_category_adventure" android:id="@+id/img_userpic_recview_comments" android:layout_width="wrap_content" android:layout_height="wrap_content" /> < /LinearLayout>

另一答案“显然,图像视图的布局是中心而不是TOP。为什么会发生这种情况?”
它不是居中的,它位于顶部,就像您在XML中定义的一样。
另一答案请注意一件事:
LinearLayout有方向vertical
儿童视图的layout_gravity可能是right, left,center,start,end。因为你已经告诉LinearLayout垂直绘制子视图,所以第一个孩子会自动在顶部。你不必指定顶部位置。
LinearLayout有方向horizontal
Child View的layout_gravity可能是top, bottom,center
【Android,XML(gravity = top无法正常工作(截图))】对于你的问题,正如我在评论中提到的那样。请在预览中查看。我确信Image位于顶部,白色区域也是该Image的一部分。

    推荐阅读