I noticed two things in your code sample:
1- You are using a Frame for your buttons, but a Frame layout can only have one child. Use
StackLayout or any other Layout that can hold more than one child.
2- You are creating some buttons but never add them to your layout.
Here is a code sample:
void newButtonCreation(string keyphrase)
{
Device.BeginInvokeOnMainThread(() =>
{
if (!string.IsNullOrWhiteSpace(keyphrase))
{
Xamarin.Forms.Button b = new Xamarin.Forms.Button
{
HorizontalOptions = LayoutOptions.Fill, VerticalOptions =
LayoutOptions.Fill, Text = keyphrase
};
b.Clicked += async (sender, args) => await TextToSpeech.SpeakAsync(keyphrase);
MyLayout.Children.Add(b);
}
}
);
}
Where (MyLayout) is a StackLayout defined in XAML with (x:Name="MyLayout")
Let me know if that works for you. Best luck.