2012-02-13 2 views
13

タイトルに示されているように、私はActionbarとタブモードを使用するAndroid 4.0 Tabletアプリを持っています。ドロップダウンリストを作成するのではなく、リーチの限界に達するとActionBarのタブをスクロールします

アクションバーに4つ以上のタブを追加すると、代わりにドロップダウンリストが作成されます。 「注:場合によっては、アクションバーの最適化を確実にするために、Androidシステムによってアクションバーのタブがドロップダウンリストとして表示されることがあります。

デフォルトの動作をオーバーライドして項目をスクロールするためのアクションバーを取得できるかどうかは疑問でしたか?デザインドキュメントhttp://developer.android.com/design/patterns/actionbar.htmlは、スクロール可能なタブについて語っていますが、デザインドキュメント以外の情報は表示されません。

+0

もう少し掘り下げました:http://code.google.com/p/android/issues/detail?can=2&start=0&num=100&q=&colspec=ID%20Type%20Status%20Owner%20Summary%20Stars&groupby =&sort =&id = 24439これは不可能なようです。今代替のアプローチを探しています – JamesSugrue

答えて

10

私はこれを動作させるために苦労しています。しかし、ActionBarSherlockでプレイした後、解決策は激しく簡単です。あなたがサンプルスタイル付きのソースをダウンロードし、MainActivityクラスで見れば、あなたはそれがタブを作成して追加を参照し、その下にすることができます

actionBar.setDisplayShowTitleEnabled(false); 
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); 

私は、タブを追加する前に、これらと呼ばれていた、と私のタブが投入されていましたドロップダウンリストに追加します。あなたがする必要があるのは、スクロールタブを維持する代わりにタブを追加した後に呼び出すことだけです。

+0

私が後にした答えではありませんが、現時点では現れているので、私が望むことをするための唯一の方法です。 – JamesSugrue

+1

私のために働かなかった。私はまだタブの代わりにドロップダウンリストが表示されます。 –

0

SDKのHoneycomb Galleryサンプルアプリケーションをチェックしましたか?それはあなたが探しているものを持っているかもしれません。スクロール可能なタブを表示するには、ICS非タブレットデバイスにインストールします。タブレットにはスクロールするための画面スペースが多すぎます。

http://developer.android.com/resources/samples/HoneycombGallery/index.html

+1

私はそれもタブレットでスクロールしたい - 私は上記のプロジェクトに5つのタブを追加し、それもメニューに凝縮。 PITA – JamesSugrue

2

アクションビューは、アクション項目のボタンの代用としてアクションバーに表示されるウィジェットですhttp://developer.android.com/guide/topics/ui/actionbar.html

からの「アクションビューの追加」をお読みください。あなたは

<?xml version="1.0" encoding="utf-8"?> 
<menu xmlns:android="http://schemas.android.com/apk/res/android"> 
<item android:id="@+id/mytabwidget" 
     android:title="" 
     android:icon="@drawable/ic_launcher" 
     android:showAsAction="always" 
     android:actionViewClass="android.widget.HorizontalScrollView" /> 
</menu> 

を指定することで、アクションビューとしてHorizontalScrollViewを使用することができます

public boolean onCreateOptionsMenu(Menu menu)

にこのHorizontalScrollViewへの参照を取得し、選択したときに、各RadioButtonは、それに関連するタブが更新されますいくつかのRadioButtonRadioGroupを定義します内容今、あなたはあなたが、タブの内容を更新するselectTab(ActionBar.Tab tab)またはいくつかの他の同等の方法を使用することができますpublic boolean onCreateOptionsMenu(Menu menu)

になりますどのHorizontalScrollViewにこのRadioGroupを追加します。

あなたは透明画像にandroid:buttonを設定することにより、RadioButtonの外観を変更し、その後の状態でいくつかのStateListDrawableを設定すると、チェックを選択し、通常のことができます。..

私はこの方法を使用してしまった画面の下を参照してください。上記画像における

enter image description here

RadioButtonをチェックすると、別のタブを選択します。

-1

UIは、理由により動作します。スクロール可能なタブのセットは非常に混乱します。右側に利用可能なタブがほかにもあることが明確にならない可能性が高く、タブをスクロールしてより多くの機能を利用できるかどうかはわかりません。

プラットフォームがどのように動作するように設計されていることを守ることをおすすめします。それは一般的に何らかの理由で事をします。

+5

Android Designページの担当者に、「アクションバー」に関連する「スクロール可能なタブ」とは何かを指摘することができます(http://developer.android.com/design /patterns/actionbar.html)もそうではありません。彼らが記述しているのは 'ViewPager'とSDKにはない(' PagerTitleStrip'は表示専用なので実際には "タブ"とはみなされない)いくつかのタイトルストリップです。開発者にとって、Google自身が(あなたの答えに応じて)同意しない、および/またはSDKでサポートされていないという設計ガイドラインが与えられているのは残念です。 – CommonsWare

+2

Android設計ドキュメントの「ビュー数が多い場合はスクロール可能なタブを使用してください」という私の考えでは、ビルドしているアプリケーションでは、その数のタブ。確かに「オープンな」プラットフォームでは、OSではなく、アプリケーションに適したものを開発者が選択する必要があります。私たちのアプリは、訓練されていないユーザーによって使用されることのない縦型です。 – JamesSugrue

+2

また、スクロールするタブは、回避策として実装する必要があるスクロールリストよりもどのように混乱しますか?リストの最後の項目の下にあることは明らかではありません。 – JamesSugrue

関連する問題