Je souhaite ajouter automatiquement des éléments à ma mise en page, comment faire? Par exemple, une vue de texte apparaît lorsqu'un utilisateur clique sur un bouton

2
miko 20 avril 2017 à 17:26

3 réponses

Meilleure réponse

Pour ajouter une vue TextView ou toute autre vue sous Android, vous devez ajouter la vue souhaitée à une vue prenant en charge l'ajout, par exemple LinearLayout.

Si vous avez cette disposition:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/lnrRootView"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

Et puis en vous Activity ajoutez un TextView par programmation à votre LinearLayout.

public class MainActivity : Activity
    {
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);

            // Set our view from the "main" layout resource
            SetContentView(Resource.Layout.Main);

            var linearLayout = FindViewById<LinearLayout>(Resource.Id.lnrRootView);

            var textView = new TextView(this);
            textView.Text = "Added programaticlly";
            linearLayout.AddView(textView);
        }
    }

Vous obtiendrez quelque chose comme ceci:

enter image description here

1
jzeferino 20 avril 2017 à 14:38

Tout dépend de ce que vous essayez d'accomplir. Vous pouvez simuler l'ajout à la mise en page en tournant la visibilité des éléments après certains événements, par exemple. cliquez sur le bouton.

Si vous souhaitez ajouter des éléments de manière dynamique pendant l'exécution, envisagez d'utiliser ObservableCollection<T>

Lien: https://developer.xamarin.com/api /type/System.Collections.ObjectModel.ObservableCollection%601/

0
Mike 20 avril 2017 à 14:37

Je ne connais pas très bien Xamarin.Android, mais je pense que la bonne façon est d'ajouter des contrôles à la mise en page avec "IsVisible = false", puis de définir IsVisible = true.

Sinon, vous pouvez jeter un oeil à

LinearLayout principalview = FindViewById(Resource.Id.mainlayout);

    LinearLayout.LayoutParams parametros = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MatchParent, LinearLayout.LayoutParams.MatchParent);
    var valueB = new Button(this);
    valueB.Text = "Teste";
    valueB.SetBackgroundColor(Color.Aqua);
    principalview.AddView(valueB, parametros);

OU

var layout = new LinearLayout (this);
layout.Orientation = Orientation.Vertical;

var aLabel = new TextView (this);
aLabel.Text = "Hello, World!!!";

var aButton = new Button (this);
aButton.Text = "Say Hello!";

aButton.Click +=(sender, e) => 
{aLabel.Text="Hello Android!";};

layout.AddView (aLabel);
layout.AddView (aButton);
SetContentView (layout); 
0
Alessandro Caliaro 20 avril 2017 à 14:47