2012-05-02 11 views
3

Androidのコンテキストメニューのメニュー項目の間に区切り記号を追加することはできますか?私はドキュメントにこれについての指示はありません。明らかに、メニューアイテムは、異なる種類の操作を実行するときに分離する必要があります。Androidのコンテキストメニューの項目区切り

NB。質問は、オプションメニューではなく、コンテキストメニューです。

+0

コンテキストメニューを追加するセパレータの種類を区切りとして、細いラインでリストの形式で、コンテンツ表示しますか? –

+0

まあ、私は独特のセパレーターを意味します。ほとんどのプログラミング環境では、アイテムのグループ間に論理的な境界を表示する特別なセパレータ "item"があります。たとえば、Chromeの設定メニューをご覧ください。 – Stan

答えて

3

最初に私は唯一の回避策 - 例えばIcon Context Menuのようなコンテキストメニューのカスタム実装を考えました。このようなコードは、メニュー項目クラスをカスタムビューで特定のメニューセパレータクラスに拡張することを可能にする。

...しかし、いくつかの時間が後に私がいることを発見した...

は、別の(非常に簡単)ソリューションは、意外にも、この「_」(下線)文字列(とメニュー項目を追加することができの唯一のシンボル複数のインスタンスをギャップなしでスムーズに表示できるAndroidフォント)、次にSpannableStringを使用してJavaコードのアイテムテキストを整列させます。

文字列リソース

<string name="hr">______________________________</string> 

適宜文字列の長さを調整します。

メニューのレイアウト

<group android:checkableBehavior="none" android:enabled="false"> 
    <item android:id="@+id/menu_gap" 
     android:title="@string/hr" 
     android:enabled="false" /> 
</group> 

のJava

private void alignCenter(MenuItem item) 
{ 
    SpannableString s = new SpannableString(item.getTitle()); 
    s.setSpan(new AlignmentSpan.Standard(Alignment.ALIGN_CENTER), 0, s.length(), 0); 
    item.setTitle(s); 
} 
関連する問題