2017-04-19 21 views
0

私はListViewを3つの背景色状態にしようとしています。アクティブ ListView ContextMenuアクティブな状態の色

  • (ユーザの指が触れているとき)を押す
    1. 通常のコンテキストメニュー(コンテキストメニューは、特定の項目に表示されたとき)

    ノート:私が持っていませんコンテキストメニューがアクティブでないときに選択状態の必要性。

    基本的に、私が苦労している部分は#3です。ユーザーがリストビュー項目を長押しすると、コンテキストメニューが表示されますが、押した項目で別の色を強調表示したい場合もあります。コードで

    、私はこの

    // note: the names are just to tell you what view type we're dealing with. 
    // android_Widgit_ListView: the ListView 
    // android_Views_View: the Cell 
    if (android_Widgit_ListView != null) 
    { 
        android_Views_View.Background = ContextCompat.GetDrawable(context, Resource.Drawable.listview_selector); 
        android_Widgit_ListView.SetSelector(Resource.Drawable.listview_selector); 
        android_Widgit_ListView.CacheColorHint = Color.Transparent.ToAndroid(); 
    } 
    

    を持っていると私は、セレクタ(ちょうど何を見るために別の色に注意してください)

    <!-- listview_selector.xml --> 
    <selector xmlns:android="http://schemas.android.com/apk/res/android"> 
        <item android:state_focused="true" android:drawable="@color/PrimaryMediumBlue"/> 
        <item android:state_activated="true" android:drawable="@color/PrimaryYellow"/> 
        <item android:state_selected="true" android:drawable="@color/SecondaryWarmGrey"/> 
        <item android:state_checked="true" android:drawable="@color/SecondaryGreen"/> 
        <item android:state_pressed="true" android:drawable="@color/SecondaryLightGrey"/> 
        <item android:drawable="@color/white"/> 
    </selector> 
    

    問題があるを持っているときにI項目を長押しするとコンテキストメニューが表示され、リスト表示項目は白に戻ります。

    どのようにしてその州を別の色にすることができますか?

  • 答えて

    0

    その回避策のビットが、...

    あなたは、コンテキストメニューのプロパティに色の変更機能を結合することができます。

    例: "OnAppering"と "OnDisapering"を設定する "アクティブ"と呼ばれるブール。

    INotifyPropertyChangedを実装し、アクティブなプロパティが変更されたときにイベントを発生させます。

    そして、listviewでイベントを聞き、その色を変更します。

    -

    私はこれが最善の方法であることを確認していない...

    +0

    にこれを追加します。 Xamarin.Formsには、ContextMenuビットのすべてが内部/密封されています。( –

    +0

    ダムはそれを聞いて申し訳ありません。 – rrr

    0
    <style name="MyTheme" parent="MyTheme.Base"> 
        <item name="android:colorLongPressedHighlight">@color/ListViewHighlighted</item> 
    </style> 
    <color name="ListViewHighlighted">#A8A8A8</color> 
    

    は、私はそのパスをダウンしたResourses>Values>Styles.xml

    関連する問題