Salutations Stack Overflow CommunautéEn utilisant LayoutInflater.inflate() pour créer un Toast personnalisé dans Android
Lorsque vous créez une coutume Toast le android developer guide ainsi que ce stack overflow post, les deux fournissent l'exemple suivant:
my_custom_toast. xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/toast_container"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<ImageView android:src="@drawable/droid"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
<TextView android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
</LinearLayout>
MainActivity.java
LayoutInflater inflater = getLayoutInflater();
View layout = inflater.inflate(
R.layout.my_custom_toast,
(ViewGroup) findViewById(R.id.toast_container)
);
TextView text = (TextView) layout.findViewById(R.id.text);
text.setText("This is a custom toast");
Toast toast = new Toast(getApplicationContext());
toast.setGravity(Gravity.CENTER_VERTICAL, 0, 0);
toast.setDuration(Toast.LENGTH_LONG);
toast.setView(layout);
toast.show();
A Quelques notes
Si le second argument est nul, alors inflate()
devrait revenir à la racine du fichier XML, qui est le LinearLayout appelé toast_container
. Sinon, si un ViewGroup est passé comme second argument, inflate()
doit attacher la hiérarchie gonflée à ce ViewGroup et renvoyer le ViewGroup fourni (qui est maintenant le parent de la disposition gonflée).
J'ai 2 questions:
Première:
Quel est le but de fournir un second argument? Par défaut, LinearLayout avec l'ID @+id/toast_container
sera retourné si nous passons null.
Deuxième: à l'un de ses propres membres
Comment la hiérarchie gonflé peut être gonflé (et intégré)? Ou, l'utilisation de gonfler() ci-dessus est-elle considérée comme incorrecte? En d'autres termes, ce code gonfle (et incorpore) la disposition dans l'un de ses propres membres, c'est-à-dire LinearLayout (vérifier @+id/toast_container
). Ceci duplique le LinearLayout en gonflant le fichier xml dans un second LinearLayout.
Dans le cadre de ces normes de site Web, veuillez éviter de poser plus d'une question par article, car cela rendrait la réponse et le vote plus compliqués. –