2016-04-27 46 views
0

視圖中的輸入字段正在內容頁面上填充。並且在視圖中它被設置爲IsEnabled=false;。每當它被設置爲禁用時,條目的值不會被設置。xamarin.forms的奇怪問題

請看看下面的代碼:

public class DetailsView : ContentView 
    { 
     public static Entry txtdetailsName; 
     public DetailsView() 
     { 
      Label lbldetailsName = new Label { Text = Resource.detailsName, FontAttributes = FontAttributes.Bold, Style = (Style)Application.Current.Resources["LabelStyle"] }; 
      txtdetailsName = new Entry { Style = (Style)Application.Current.Resources["entryStyle"], IsEnabled = false }; 


      StackLayout stDetailsName = new StackLayout 
      { 
       Padding = new Thickness(10, 0, 10, 0), 
       Children ={ 
        lbldetailsName, 
        txtdetailsName 
       } 
      }; 
      Content = new StackLayout 
      { 
       Padding = new Thickness(0, 0, 0, 20), 
       Children = {stDetailsName} 
      }; 
     } 
    } 

在內容頁:

public TestDetailsPage() 
{ 
    getDetailsData(); 
} 

private async void getDetailsData() 
{ 
    Test test = new Test(); 
    test = await getTestDetails(); 
    loadView(test); 
} 

public async Task<Test> getTestDetails() 
{ 
    //... 
    return Test; 
} 

public void loadView(Test test) 
{ 
    DetailsView = new DetailsView(); 
    //DetailsView.txtdetailsName.Text = Test.Name; 
    DetailsView.txtdetailsName.Text = "Some Text"; 
} 

但它似乎並沒有設定值。不知道是什麼導致了這個問題。

編輯

我測試在三個機器人設備Micromax的畫布(Android版本6.0.1),華碩Zenfone(Android版本4.4.2)和三星Galaxy Tab 2的應用(Android版本4.1.2) 。在華碩zenfone和Samasung galaxy標籤2上,禁用字段的值按預期顯示,而在Micromax畫布上,禁用的文本框爲空。

Android version could be the issue?

回答

0

貌似的loadView可能是沒有主線程創建的DetailsView。你可以檢查以確保它是?異步無效可能會吞噬該異常。

+0

它確實創建DetailsView。我在3個設備(Micromax Canvas(Android版本6.0.1),華碩Zenfone(Android版本4.4.2)和三星Galaxy Tab 2(Android版本4.1.2))上測試了應用程序,奇怪的是它在兩個設備上工作(Asus Zenfone和Samasung星系標籤2)。 Android版本可能是問題? – Arti

+0

它當然可以是Android版本。您的應用程序是否使用FormsAppCompatActivity? – joe

+0

不,MainActivity.cs繼承自FormsApplicationActivity – Arti