xamarin.android - 无法垂直居中 ImageButton
问题描述
我有一个小问题,我似乎无法解决。我创建了一个 ImageButton 和一个 TextView。它们在彼此下方,但我希望它们垂直和水平居中。我已经将它水平放置,但无论我做什么......我都无法让它垂直居中(所以在屏幕中间)。这是我的代码:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#0e2a56"
android:weightSum="100">
<ImageButton
android:src="@drawable/add"
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_weight="25"
android:id="@+id/imageButton1"
android:gravity="center_vertical|center_horizontal" />
<TextView
android:text="Add project"
android:textColor="#FFFFFF"
android:textSize="35dp"
android:textStyle="bold"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minWidth="25px"
android:minHeight="25px"
android:id="@+id/textView1"
android:gravity="center_vertical|center_horizontal" />
</LinearLayout>
我究竟做错了什么?
解决方案
当我们使用LinearLayout布局时:
时
android:orientation="vertical"
,android:layout_gravity
仅适用于水平方向,不适用于垂直方向。渲染了Left、right和center_horizontal。时
android:orientation="horizontal"
,android:layout_gravity
仅适用于垂直方向,但不适用于水平方向。top,bottom,center_vertical被渲染。
因此,如果您想将 imagebutton 和 textview 居中,您可以将它们包装在 RelativeLayout 中,如下所示:
<?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"
android:background="#0e2a56"
>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_centerInParent="true"
android:gravity="center_horizontal"
>
<ImageButton
android:src="@drawable/add"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/imageButton1"
/>
<TextView
android:text="Add project"
android:textColor="#FFFFFF"
android:textSize="35dp"
android:textStyle="bold"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:minWidth="25px"
android:minHeight="25px"
android:id="@+id/textView1"
/>
</LinearLayout>
</RelativeLayout>
推荐阅读
- php - Laravel:如何防止像 created_at user_id_created 这样的值发送到前端
- html - 使用 css 选择器对齐图像
- angular - 延迟加载模块的子路由在角度元素中不起作用
- java - Invocation.Builder java如何将json作为字符串而不是实体发布
- vuejs2 - 使用计算属性动态设置表单操作
- mysql - 指定 LIKE 子句可以查看的 WHERE
- r - 使用 R 将一列中的值添加到另一列中缺少第二列中的值
- android - 响应式图像 - 如何?
- python - 使用pandas包在python中组合来自多个excel文件的数据
- sql-server - SP_EXECUTESQL 中的 SQL 注入