所以我设置了布局行文件代码,如下所示
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<RelativeLayout
android:id="@+id/rel_items"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="@dimen/margin_5dp"
android:background="@drawable/rect_white">
<LinearLayout
android:id="@+id/ll_main"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:weightSum="100">
<LinearLayout
android:id="@+id/ll_left"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="70">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<CheckBox
android:id="@+id/ckh"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginLeft="@dimen/margin_5dp" />
<customtext.BoldText
android:id="@+id/task_title"
style="@style/NormalTextView"
android:layout_marginLeft="@dimen/margin_2dp"
android:layout_marginRight="@dimen/margin_5dp"
android:layout_marginTop="@dimen/margin_10dp"
android:layout_toRightOf="@+id/ckh"
android:singleLine="false"
android:text="Title"
android:textColor="@android:color/black"
android:textSize="@dimen/text_11" />
<customtext.RegularText
android:id="@+id/task_assign"
style="@style/NormalTextView"
android:layout_alignLeft="@+id/task_title"
android:layout_below="@+id/task_title"
android:layout_marginTop="@dimen/margin_2dp"
android:layout_toRightOf="@+id/ckh"
android:background="@drawable/rect_full"
android:padding="@dimen/margin_2dp"
android:text="Title"
android:textColor="@android:color/white"
android:textSize="@dimen/text_8" />
<customtext.RegularText
android:id="@+id/task_date"
style="@style/NormalTextView"
android:layout_alignLeft="@+id/task_assign"
android:layout_below="@+id/task_assign"
android:paddingBottom="@dimen/margin_5dp"
android:text="Title"
android:layout_marginTop="@dimen/margin_2dp"
android:textColor="@color/dark_gray"
android:textSize="@dimen/text_10" />
</RelativeLayout>
</LinearLayout>
<LinearLayout
android:id="@+id/ll_right"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_marginBottom="1.5dp"
android:layout_marginRight="1.5dp"
android:layout_marginTop="1.5dp"
android:layout_weight="30"
android:background="@drawable/rect_task_edit_delete"
android:gravity="center|right">
<ImageView
android:id="@+id/img_edit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="@dimen/margin_20dp"
android:src="@drawable/edit" />
<ImageView
android:id="@+id/img_delete"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="@dimen/margin_10dp"
android:src="@drawable/delete" />
</LinearLayout>
</LinearLayout>
</RelativeLayout>
</RelativeLayout>
当我在普通设备(如480x800)中运行时,它会提供如下图像的输出
当我在像1080x1920这样的高分辨率设备(320dpi)(索尼xperia z Ultra)中运行时,我给出了以下输出
所以任何想法如何在非常高分辨率的设备中保持这种布局?
答案 0 :(得分:2)
I have updated your code with images and variables in one of my projects. I recommend you to change the LinearLayout with the weight sum of 100 to a relative layout and put the item you want to fix the size to align parent right. Here is an example which work. You can fix the relativelayout root height. Hope it help
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<RelativeLayout
android:id="@+id/rel_items"
android:layout_width="match_parent"
android:layout_height="80dp"
android:layout_margin="5dp"
android:background="@android:color/white">
<RelativeLayout
android:id="@+id/ll_main"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<LinearLayout
android:id="@+id/ll_right"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_marginBottom="1.5dp"
android:layout_marginRight="1.5dp"
android:layout_alignParentRight="true"
android:padding="10dp"
android:layout_marginTop="1.5dp"
android:background="@drawable/button_connexion"
android:gravity="center|right">
<ImageView
android:id="@+id/img_edit"
android:layout_width="20dp"
android:layout_height="20dp"
android:layout_marginRight="20dp"
android:src="@drawable/statut_presence_jaune" />
<ImageView
android:id="@+id/img_delete"
android:layout_width="20dp"
android:layout_height="20dp"
android:src="@drawable/statut_presence_vert" />
</LinearLayout>
<LinearLayout
android:id="@+id/ll_left"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<CheckBox
android:id="@+id/ckh"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginLeft="5dp" />
<TextView
android:id="@+id/task_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="2dp"
android:layout_marginRight="5dp"
android:layout_marginTop="20dp"
android:layout_toRightOf="@+id/ckh"
android:singleLine="false"
android:text="Title"
android:textColor="@android:color/black"
android:textSize="11sp" />
<TextView
android:id="@+id/task_assign"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/task_title"
android:layout_below="@+id/task_title"
android:layout_marginTop="2dp"
android:layout_toRightOf="@+id/ckh"
android:background="@android:color/holo_blue_bright"
android:padding="2dp"
android:text="Title"
android:textColor="@android:color/white"
android:textSize="8sp" />
<TextView
android:id="@+id/task_date"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/task_assign"
android:layout_below="@+id/task_assign"
android:paddingBottom="5dp"
android:text="Title"
android:layout_marginTop="2dp"
android:textColor="@android:color/darker_gray"
android:textSize="10sp" />
</RelativeLayout>
</LinearLayout>
</RelativeLayout>
</RelativeLayout>
答案 1 :(得分:2)
使用ID
更改视图的权重android:id="@+id/ll_left"
到1.并删除ID为
的视图android:id="@+id/ll_right"
并将其替换为以下代码行:
<LinearLayout
android:id="@+id/ll_img_edit"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_margin="2dp"
android:background="@drawable/rect_task_edit_delete"
android:gravity="center">
<ImageView
android:id="@+id/img_edit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/edit" />
</LinearLayout>
<LinearLayout
android:id="@+id/ll_img_delete"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_margin="2dp"
android:background="@drawable/rect_task_edit_delete"
android:gravity="center">
<ImageView
android:id="@+id/img_delete"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/delete" />
</LinearLayout>
在此您可以根据您的要求更改保证金值。
答案 2 :(得分:1)
而不是
<LinearLayout
android:id="@+id/ll_right"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_marginBottom="1.5dp"
android:layout_marginRight="1.5dp"
android:layout_marginTop="1.5dp"
android:layout_weight="30"
android:background="@drawable/rect_task_edit_delete"
android:gravity="center|right">
<ImageView
android:id="@+id/img_edit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="@dimen/margin_20dp"
android:src="@drawable/edit" />
<ImageView
android:id="@+id/img_delete"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="@dimen/margin_10dp"
android:src="@drawable/delete" />
</LinearLayout>
将此用于图像线性布局,您的问题将得到解决......
<LinearLayout
android:id="@+id/ll_right"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_marginBottom="1.5dp"
android:layout_marginRight="1.5dp"
android:layout_marginTop="1.5dp"
android:layout_weight="30"
android:background="@drawable/rect_task_edit_delete"
android:gravity="center|right">
<ImageView
android:id="@+id/img_edit"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:layout_marginRight="@dimen/margin_20dp"
android:src="@drawable/edit" />
<ImageView
android:id="@+id/img_delete"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:layout_marginRight="@dimen/margin_10dp"
android:src="@drawable/delete" />
</LinearLayout>
注意: - 这个问题是由于你使imageView包装内容和线性布局与重量因此线性布局由于其重量调整但是imageView是包装内容。所以它改变设备到设备.....
答案 3 :(得分:1)
在包含图像视图的LinearLayout中删除并编辑。你已经为它们指定了右边距,在这里删除了它和权重。
答案 4 :(得分:1)
只需在下面更改第二个布局,
<LinearLayout
android:id="@+id/ll_right"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_marginBottom="1.5dp"
android:layout_marginRight="1.5dp"
android:layout_marginTop="1.5dp"
android:layout_weight="30"
android:background="@android:color/transparent"
android:gravity="center|right">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:background="@drawable/rect_task_edit_delete"
android:gravity="center|right">
<ImageView
android:id="@+id/img_edit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="@dimen/margin_20dp"
android:src="@drawable/edit" />
<ImageView
android:id="@+id/img_delete"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="@dimen/margin_10dp"
android:src="@drawable/delete" />
</LinearLayout>
</LinearLayout>
答案 5 :(得分:1)
在第二个布局中使用weightSum
属性。
<LinearLayout
android:id="@+id/ll_right"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_marginBottom="1.5dp"
android:weighSum = "1"
android:layout_marginRight="1.5dp"
android:layout_marginTop="1.5dp"
android:layout_weight="30"
android:background="@drawable/rect_task_edit_delete"
android:gravity="center|right">
<ImageView
android:id="@+id/img_edit"
android:layout_width="0dp"
android:layout_weight="0.5"
android:layout_height="wrap_content"
android:layout_marginRight="@dimen/margin_20dp"
android:src="@drawable/edit" />
<ImageView
android:id="@+id/img_delete"
android:layout_weight="0.5"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginRight="@dimen/margin_10dp"
android:src="@drawable/delete" />
</LinearLayout>
答案 6 :(得分:1)
只需按以下方式添加ImageView
权重属性即可。因此,ImageView
和
<ImageView
android:id="@+id/img_edit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="@dimen/margin_20dp"
android:src="@drawable/edit"
android:layout_weight="1" />
<ImageView
android:id="@+id/img_delete"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="@dimen/margin_10dp"
android:src="@drawable/delete"
android:layout_weight="1" />
</LinearLayout>