下面是我的XML代码。我想在linearlayout (id: inside_linear)上方留下一些空白来显示toast。我知道我们可以使用toast的setGravity()方法。但是我怎么计算y偏移呢?
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity"
android:id="@+id/relative">
<LinearLayout
android:id="@+id/outside_linear"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:gravity="center_horizontal"
android:weightSum="10">
<FrameLayout
android:id="@+id/frame"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="8"/>
<LinearLayout
android:id="@+id/inside_linear"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="2"
android:orientation="vertical"
android:gravity="center_horizontal">
.....
</LinearLayout>
</RelativeLayout>
你检查过这个答案了吗?https://stackoverflow.com/a/2507069
toast.setGravity(Gravity.TOP|Gravity.LEFT, 0, 0);
使用最后一个参数更改Y轴位置。
也可以尝试setMargin(),它适用于百分比
toast.setMargin(horizontalMargin, verticalMargin);