2017-04-11 52 views
0

我有一個ListView和我禁用了selection有:禁用Android上選擇,如果listChoiceBackgroundIndicator項目樣式用於

void OnSelection (object sender, SelectedItemChangedEventArgs e) 
{ 
    if (e.SelectedItem == null) { 
    return; //ItemSelected is called on deselection, which results in SelectedItem being set to null 
    } 
    ((ListView)sender).SelectedItem = null; 
} 

在我的Android主題,我已經定義我的風格以下

<item name="android:listChoiceBackgroundIndicator">@color/primaryLight</item> 

如果我這樣做,該項目保持視覺選擇,儘管選擇的狀態是未選中的。

目標是有一個樣式,它適用於兩種類型:可選和不可選列表視圖項目。如果我使用((ListView)sender).SelectedItem = null;,則呈現選定狀態的背景應該恢復爲默認值。

我該怎麼做?

回答

0

試試這個

((ListView)sender).requestLayout(); 
((ListView)sender).clearChoices(); 

希望這有助於。謝謝。

+0

看來'requestLayout()'和'clearChoices()'在Xamarin.Forms ListView中不可用。即使[特定平臺](https://blog.xamarin.com/bringing-platform-specific-functionality-to-xamarin-forms-apps/)似乎也不支持'ListView'的方法。自定義渲染器可能會這樣做。所以沒有選擇只使用樣式? – testing

+0

你沒有提到你正在使用Xamarin。我沒有經驗。不過,我認爲你可以使用造型來做到這一點。 –

+0

有時我需要採取Xamarin的方法,有時是原生的Android方法。因此,一個僅限Android的解決方案也可以工作(或者我可以將它翻譯成Xamarin)。 – testing