Comment faire pour afficher une présentation sur le dessus de l'autre par programmation dans mon cas?
Ma page principale main.xml ne contient que deux LinearLayouts:
- Le 1er
LinearLayout
accueille uneVideoView
et unButton
, - La 2ème
LinearLayout
accueille unEditText
, et ceLinearLayout
a mis le visibilité valeur "ALLÉ" (android:visibility="gone"
)
comme ci-dessous:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="fill_parent"
android:layout_width="fill_parent"
android:orientation="vertical"
>
<LinearLayout
android:id="@+id/first_ll"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
>
<VideoView
android:id="@+id/my_video"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="9"
/>
<Button
android:id="@+id/my_btn"
android:layout_width="30dip"
android:layout_height="30dip"
android:layout_gravity="right|bottom"
android:layout_weight="1"
/>
</LinearLayout>
<LinearLayout
android:id="@+id/second_ll"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:paddingTop="2dip"
android:visibility="gone"
>
<EditText
android:id="@+id/edit_text_field"
android:layout_height="40dip"
android:layout_width="fill_parent"
android:layout_weight="5"
android:layout_gravity="center_vertical"
/>
</LinearLayout>
</LinearLayout>
J'ai mis en œuvre avec succès la fonction que lorsque le Button
(avec l'id my_btn) est enfoncée, le 2e LinearLayout
avec EditText
champ est affiché, avec le code Java suivant:
LinearLayout secondLL = (LinearLayout) findViewById(R.id.second_ll);
Button myBtn = (Button) findViewById(R.id.my_btn);
myBtn.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v){
int visibility = secondLL.getVisibility();
if(visibility==View.GONE)
secondLL.setVisibility(View.VISIBLE);
}
});
Ci-dessus du code Java, le 2e LinearLayout
avec EditText
est montré comme ajoutant ci-dessous la 1er LinearLayout
qui a du sens.
MAIS, Ce dont j'ai besoin est: quand Button
(id: my_btn) est enfoncée, le 2e LinearLayout
avec EditText
est indiquée sur le dessus de la 1er LinearLayout
, qui ressemble à la 2e LinearLayout
avec EditText
est à la hausse à partir du bas de l'écran, et le 2e LinearLayout
avec EditText
n'occupent qu'une partie de l'écran à partir du bas, c'est le 1er LinearLayout encore visibles, comme l'image ci-dessous ont montré:
Donc, quand Button
(id: my_btn) est appuyé sur la façon de montrer la 2e LinearLayout
avec EditText
sur le dessus de la 1er LinearLayout
au lieu d'ajouter 2e LinearLayout
ci-dessous 1er LinearLayout
par programmation?
Vous devez vous connecter pour publier un commentaire.
Utiliser un FrameLayout avec deux enfants. Les deux enfants vont se chevaucher. Ce qui est recommandé dans un des tutos de Android en fait, ce n'est pas un hack...
Voici un exemple où un TextView est affichée en haut de l'ImageView:
TextView
sur le dessus? est-ce parce qu'il vient en seconde place dans la liste?La réponse, donnée par Alexandru est de travail très agréable. Comme il le dit, il est important que ce "accesseur"est ajouté comme dernier élément. Voici un bout de code qui a fait le tour pour moi:
en Java:
FrameLayout
n'est pas la meilleure façon de le faire:Utilisation
RelativeLayout
à la place.Vous pouvez placer les éléments n'importe où vous le souhaitez.
L'élément qui vient après, a le z-index supérieur que le précédent (c'est à dire, il arrive à la précédente).
Exemple: