12

Android 2.3 で動作するアプリケーションを構築しており、ActionBarSherlock と HoloEverywhere ライブラリの両方を追加しました。

ActionBarSherlock を使用するには、次のように Theme.Sherlock を使用する必要があります。

<application
    ...
    android:theme="@style/Theme.Sherlock"
    ...  >

そして、それは大丈夫です。

私の主な活動は非常に単純です: 5 行の ListView だけです (私は ListActivity を使用しません)。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <ListView
        android:id="@+id/menuListView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

</LinearLayout>

Android 2.3なので、まだオレンジと黒のテーマがあります(もちろんActionBarを除く)。次に、マニフェストを次のように変更して、HoloEverywhere テーマを追加します。

<application
    ...
    android:theme="@style/Theme.HoloEverywhereDark.Sherlock"
    ...  >

しかし、それは何も変わりません...何が欠けていますか?

4

3 に答える 3

7

すべての ListView に対してデフォルトで Holo テーマを有効にするには、HoloEverywhere ライブラリの styles.xml ファイルに移動し、次の行を追加して「ListViewStyle」要素を変更しました。

<item name="android:listSelector">@drawable/list_selector_holo_dark</item>
于 2012-07-27T13:13:59.337 に答える
3

ListView のセレクターにも同じ問題がありました。HoloEveruwhere はデフォルトでホロ セレクター (青) を適用すると思いました (私は Theme.HoloEverywhereLight と Theme.HoloEverywhereLight の両方を試しました) が、そうではありませんでした。多分私は何かが欠けています。

セレクターを手動で設定することになりました:

listView.setSelector(R.drawable.list_selector_holo_light);

ライブラリには、利用できるいくつかの描画可能なリソースがあります(たとえば、list_selector_holo_light)。

于 2012-07-27T10:34:31.870 に答える
2

移植可能で正しい解決策は、ListViewStyle から継承して属性をオーバーライドし、styles.xml でこれを作成することです。

HoloEverywhere 公式ライブラリがサーバー (Maven リポジトリなど) にリモートでデプロイされている場合、styles.xml の変更を維持することに依存することはできません (独自のニーズに合わせて変更しています)。

于 2012-12-05T19:29:41.773 に答える