在Xamarin.Forms应用程序中,我使用GeoLocator来检索有关我的位置的信息.该方法是异步的.我必须返回包含位置参数的对象,但我不能.
这是我的类PositionPage的构造函数
public PositionPage()
{
getCurrentPosition();
var map = new Map(
MapSpan.FromCenterAndRadius(
new Position(45.987487, 9.366337), Distance.FromMiles(0.3)))
{
IsShowingUser = true,
HeightRequest = 100,
WidthRequest = 960,
VerticalOptions = LayoutOptions.FillAndExpand
};
var stack = new StackLayout { Spacing = 0 };
stack.Children.Add(map);
Content = stack;
}
Run Code Online (Sandbox Code Playgroud)
这是异步方法(现在是一个void方法):
public async void getCurrentPosition()
{
try
{
var locator = CrossGeolocator.Current;
locator.DesiredAccuracy = 50;
var position = await locator.GetPositionAsync(timeoutMilliseconds: 10000);
Debug.WriteLine("Position Status: {0}", position.Timestamp);
Debug.WriteLine("Position Latitude: {0}", position.Latitude);
Debug.WriteLine("Position Longitude: {0}", position.Longitude);
}
catch …Run Code Online (Sandbox Code Playgroud) 我遇到了一个editText的情况.当我在编辑文本中按添加时,我在列表中添加成员.何时添加(或不添加)我正在打开自定义对话框.
在我的活动中,当点击编辑文本中的添加按钮时,我有这个代码:
customDialogTeamMember = new CustomDialogTeamMember(............);
customDialogTeamMember.makeDialog();
editText.getText().clear();
editText.clearFocus();
hideSoftKeyboard();
Run Code Online (Sandbox Code Playgroud)
我的hideSoftKeyboard()定义如下:
public void hideSoftKeyboard() {
this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
}
Run Code Online (Sandbox Code Playgroud)
此方法适用于应用程序的其他部分.但这里没有用!
自定义对话框打开.当我关闭它时,键盘保持在屏幕上.可能是什么问题呢?!