gpt4 book ai didi

java - 为什么 child 会被夹在定制的 toast 里?

转载 作者:行者123 更新时间:2023-12-01 20:05:53 27 4
gpt4 key购买 nike

我想创建自定义 toast,其中一个 View 有点脱离父 View 。所以我做了这样的事情

这是我定制的 toast

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/toast_root"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_margin="50dp"
android:background="#000000"
android:clipChildren="false"
android:clipToPadding="false"
android:gravity="center_vertical"
android:orientation="horizontal"
android:padding="15dp">

<TextView
android:id="@+id/digit_display"
android:layout_width="96dp"
android:layout_height="96dp"
android:layout_marginTop="-24dp"
android:layout_marginEnd="15dp"
android:layout_marginBottom="24dp"
android:background="@drawable/round_button"
android:gravity="center"
android:text="1"
android:textSize="64sp" />

<TextView
android:id="@+id/description"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="5dp"
android:text="TextView"
android:textColor="#FFFFFF"
android:textSize="18sp"
android:textStyle="bold" />
</LinearLayout>

round_button.xml

<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="false">
<shape android:shape="oval">
<solid android:color="#000000"/>
</shape>
</item>
<item android:state_pressed="true">
<shape android:shape="oval">
<solid android:color="#2C2C2C"/>
</shape>
</item>
</selector>

在java代码中我像这样使用它

LayoutInflater li = getLayoutInflater();
View v = li.inflate(R.layout.toast, null);
TextView numberView = v.findViewById(R.id.digit_display);
TextView descriptionView = v.findViewById(R.id.description);
numberView.setText(number);
descriptionView.setText(description);

Toast t = new Toast(getApplicationContext());
t.setDuration(Toast.LENGTH_LONG);
t.setView(v);
t.show();

我可以看到我的 toast 。但是 digit_display TextView 被从顶部剪掉,但我希望看到它脱离 toast(就在该 View 的顶部)。我怎样才能实现它?如果这不起作用。

已编辑我试图理解为什么这个例子不起作用,当我在其他项目中使用类似的结构时,简单的形式它就可以工作。

<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_margin="25dp"
android:background="@drawable/form_desing"
android:clipChildren="false"
android:clipToPadding="false"
android:gravity="center"
android:orientation="vertical"
android:padding="25dp">

<ImageView
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_marginTop="-50dp"
android:layout_marginBottom="50dp"
android:foreground="@drawable/clover_"
android:contentDescription="@string/fourbit_clover_icon" />

<include layout="@layout/email_input" />
<include layout="@layout/password_input" />
<include layout="@layout/buttons" />
</LinearLayout>

有什么想法吗?

最佳答案

将最外层的 Layout 视为 Toast 的 Root View ,并在其中排列项目。您不限于只能使用一个 LinearLayoutRelativeLayout 。不要尝试从 Root View 退出:它会被剪切。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="match_parent"
android:layout_width="match_parent"
android:orientation="vertical"
android:gravity="top|center">

<LinearLayout
android:layout_height="50dp"
android:layout_width="wrap_content"
android:orientation="horizontal"/>

<RelativeLayout
android:layout_height="wrap_content"
android:layout_width="wrap_content">

<LinearLayout
android:layout_height="wrap_content"
android:layout_width="200dp"
android:orientation="vertical"
android:gravity="center"
android:padding="15dp"
android:background="#0A93E1"
android:minHeight="100dp"
android:layout_marginTop="30dp">

</LinearLayout>

<TextView
android:layout_height="60dp"
android:layout_width="60dp"
android:text="Text"
android:id="@+id/digit_display"
android:background="@drawable/round_button"
android:gravity="center"
android:layout_centerHorizontal="true"
android:textColor="#FFFFFF"/>

<TextView
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="Text"
android:id="@+id/description"
android:layout_below="@id/digit_display"
android:layout_centerHorizontal="true"
android:layout_marginTop="15dp"
android:textColor="#FFFFFF"/>

</RelativeLayout>

</LinearLayout>



photo

关于java - 为什么 child 会被夹在定制的 toast 里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58985590/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com