3 回答

TA貢獻(xiàn)1796條經(jīng)驗(yàn) 獲得超4個(gè)贊
您可以創(chuàng)建自己的輸入框?qū)υ捒蚍椒?,而不是使?DisplayAlert 或任何插件。官方 Xamarin.Form 論壇中有一個(gè)關(guān)于這個(gè)主題的好帖子。
Thomas Flemming 回答了該線程的鏈接https://forums.xamarin.com/discussion/comment/110002/#Comment_110002

TA貢獻(xiàn)1895條經(jīng)驗(yàn) 獲得超7個(gè)贊
最簡(jiǎn)單的方法是使用 NuGet 的 Acr.UserDialogs 包:https ://www.nuget.org/packages/Acr.UserDialogs/
將包包含在您的共享代碼庫(kù)和您的本機(jī)實(shí)現(xiàn)中,您可以通過一個(gè)簡(jiǎn)單的調(diào)用來啟動(dòng)對(duì)話框。
此外,我還描述了一種無需使用外部插件即可創(chuàng)建自定義對(duì)話框的方法:Display a popup with xamarin forms

TA貢獻(xiàn)1856條經(jīng)驗(yàn) 獲得超5個(gè)贊
我建議你使用這個(gè)不錯(cuò)的插件:
https://github.com/rotorgames/Rg.Plugins.Popup
它讓你創(chuàng)建一個(gè)完全自定義的彈出窗口(它在某處派生自 Xamarin.Forms.ContentPage),使用 XAML 或 C#,你可以像為任何其他頁(yè)面那樣創(chuàng)建布局。
然后點(diǎn)擊“添加”按鈕,我會(huì)向彈出窗口的調(diào)用者返回一些東西。我有一個(gè)基本的彈出實(shí)現(xiàn),你可以指定一個(gè)返回值。如果您需要該代碼,我可以在此處分享(或在此處查看我的舊答案:獲取彈出頁(yè)面的公共變量)
基本實(shí)現(xiàn):
//Create a base callback-popup. Let any popup that should return something on a button click inherit from this
public class CallbackPopup<T> : PopupPage
{
public Task<T> PagePoppedTask { get { return tcs.Task; } }
private TaskCompletionSource<T> tcs;
public CallbackPopup()
{
tcs = new TaskCompletionSource<T>();
}
//Deriving classes have to call this method in the "OnDisappearing" or when a specific button was clicked
public void SetPopupResult(T result)
{
if (PagePoppedTask.IsCompleted == false)
tcs.SetResult(result);
}
}
//Asyncly call this popup
public async void OpenPopup(){
var popup = new YourPopup<bool>();
await Rg.Plugins.Popup.Services.PopupNavigation.Instance.PushAsync(popup);
bool result = await popup.PagePoppedTask;
}
添加回答
舉報(bào)