我想将所有内容布局集中到中心,但这是我遇到的问题:
正如您所看到的,我希望将图像和文本置于父级中心,但希望将图像保留在文本的左侧。
这是布局代码:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/RelativeLayout01"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@color/app_light_green" >
<ImageView
android:id="@+id/toastImage"
android:layout_width="24dp"
android:layout_height="24dp"
android:layout_centerInParent="true"
android:paddingTop="1dp"
android:src="@drawable/exclamation" />
<TextView
android:id="@+id/toastText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:gravity="center"
android:paddingBottom="3dp"
android:paddingLeft="5dp"
android:paddingRight="3dp"
android:paddingTop="2dp"
android:textColor="@color/app_darker_green"
android:textSize="@dimen/sixteen_sp" />
</RelativeLayout>
答案 0 :(得分:4)
您可以使用水平Linearlayout并在其中添加TextView和ImageView,然后在Relativelayout中添加Linearlayout并使其居中。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/RelativeLayout01"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:orientation="horizontal" >
<ImageView
android:id="@+id/toastImage"
android:layout_width="24dp"
android:src="@drawable/exclamation"
android:layout_height="24dp"
android:paddingTop="1dp" />
<TextView
android:id="@+id/toastText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:paddingBottom="3dp"
android:paddingLeft="5dp"
android:paddingRight="3dp"
android:paddingTop="2dp"
android:textColor="@color/app_darker_green"
android:textSize="@dimen/sixteen_sp"/>
</LinearLayout>
</RelativeLayout>
答案 1 :(得分:1)
尝试使用framelayout。 在framelayout中,添加imageview和textview,将重力指定为imageview,重力指定为textview的中心。并且atlast为imageview提供一些左边距,以便将其与textview对齐。
具有relativelayout的替代soln是, 在您的imageview标记中使用属性 align_toLeftOf =“@ + ID / R.id.Textview1"
从imageview中移除父级中心。 你的问题将得到解决。
请忽略我从手机输入此答案的语法。 :)
答案 2 :(得分:0)
我也带来了我的......只是为了简单
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/RelativeLayout01"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@color/app_light_green" >
<TextView
android:id="@+id/toastText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:gravity="center"
android:paddingBottom="3dp"
android:paddingLeft="5dp"
android:drawableLeft="@drawable/exclamation"
android:paddingRight="3dp"
android:paddingTop="2dp"
android:textColor="@color/app_darker_green"
android:textSize="@dimen/sixteen_sp" />
</RelativeLayout>
与我一起,你不必担心imageview,你只需将你的textview放在所有的中心..