1

さて、ここにアイデアがあります。アプリで行っているすべてのアクティビティで画面の下部に表示される一連のアイコンを作成したいと思います。最初に頭に浮かんだのはTabWidgetでした。

しばらく使ってみると、タブから「フォーカスされた状態」を取り除くことができないことに気付きました。タブはそのように機能するはずですが、アイデアはそれらのタブをアイコンのように見せることです。彼らはいつも集中しているように見えました。

使ってみtabHost.setBackgroundColor(color)ましたが、残念ながら思ったように動作しませんでした。

問題を緩和するための視覚化を次に示します。http://i.stack.imgur.com/uF7fu.png

ps、リンクについて申し訳ありません。新しいユーザーとして、私は投稿に直接画像を投稿することを許可されていませんでした。

4

3 に答える 3

1

これを行う 1 つの方法Selectorは、タブにフォーカスがあるかどうかに関係なく、タブの状態に同じカスタムを使用することです。これは次のようになります。

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- Non focused states -->
    <item android:state_focused="false" android:state_selected="false" android:state_pressed="false" android:drawable="@drawable/tab_unselected" />
    <item android:state_focused="false" android:state_selected="true" android:state_pressed="false" android:drawable="@drawable/tab_unselected" />

    <!-- Focused states -->
    <item android:state_focused="true" android:state_selected="false" android:state_pressed="false" android:drawable="@drawable/tab_unselected" />
    <item android:state_focused="true" android:state_selected="true" android:state_pressed="false" android:drawable="@drawable/tab_unselected" />

    <!-- Pressed -->
    <item android:state_pressed="true" android:drawable="@drawable/tab_press" />
</selector>

それをドローアブル ディレクトリに追加し、アクティビティでそれを使用するように tabwidget を構成します (そのように):

TabWidget tabWidget = getTabWidget();

for(int i = 0; i < tabWidget.getChildCount(); i++) {
RelativeLayout tabLayout = (RelativeLayout) tabWidget.getChildAt(i);
tabLayout.setBackgroundDrawable(res.getDrawable(R.drawable.tab_indicator));
}

より詳細なガイドはこちらです。それがあなたのために働くかどうか見てください。

于 2012-04-30T03:41:50.463 に答える
0

一般に、タッチスクリーンのないデバイス(Google TVなど)で何がアクティブであるかを示すため、または視覚障害者向けのユーザー補助ツールを支援するために、「フォーカスされた状態」が必要です。それでも「フォーカスされた状態」を非表示にするルートをたどりたい場合は、カスタムセレクターに関するFemiの回答を参照してください。

于 2012-04-30T03:44:43.103 に答える
0

Femiが示すように、選択したスタイルを変更するのがこれを行う方法です。

于 2012-04-30T03:47:23.867 に答える