問題タブ [pagerslidingtabstrip]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
205 参照

android - PagerSlidingTabStrip ライブラリで既定のタブを設定する

このライブラリを使用しています: PagerSlidingTabStrip

を使用してデフォルトのタブを変更できることはわかっていますpager.setCurrentItem(1);が、最初のスワイプがうまく機能せず、ジャークが発生します(タブが開始時に中央にあるため)。本当に私は英語でうまく説明できません、ごめんなさい。

私が見つけた他のメソッドは ActionBar に関するもので、ツールバーでは使用できません。

他の方法で既定のタブを設定できますか? アプリをコンパイルして使用pager.setCurrentItem(1);すると、私が言いたいことがわかります。

前もって感謝します。

0 投票する
1 に答える
1817 参照

android - PagerAdapter を使用した SlidingTabLayout がスライドしない

私は Google からいくつかのコードを実装しています (SlidingTabLayoutSlidingTabStrip、オンラインで簡単に見つかります) でそれを使用してViewPagerFragment. 問題は、メインのタブフラグメントクラスの拡張機能として使用PagerAdapterしていることです。これは、アダプタがタブの内容を表示するために使用されます。私のフラグメントCuteCollectionFragment.javaで機能しているタブの基本的なビューを取得できますが、それらをクリックすると、通常、新しいタブが強調表示されるまでに 2 回のクリックが必要です。さらに、スワイプして新しいタブに移動することはできません。私の疑いでは、通常はメイン アクティビティ用のベース コードをFragment( my のために) に配置する必要があるため、既にスライドNavigation Drawerしている my と競合している可能性があります。Navigation Drawerしかし、それは単なる推測です。

基本的に、Fragmentsアクティビティではなく を使用する必要があります。しかし、それらはどのように競合しており、どうすればそれを修正できますか? 私が見つけたオンラインの例はすべて、アダプターの拡張機能としてではFragmentPagerAdapterなく使用することを望んでいますが、 v.4 をサポートPagerAdapterする を使用する必要があるため、それを行うことはできません。各ナビゲーション ドロワー メニュー項目をクリックして に移動できないため、FragmentManager自分の(ナビゲーション ドロワー コードがあるもの) でそれを使用することはできません。その部分の switch ステートメントで赤いエラーが発生します。私のフラグメントはすべて拡張する必要がありますが、ナビゲーション ドロワーでは拡張できません。拡張する必要があります。CuteMainActivityFragmentFragment fragmentFragmentActivityFragment

とにかく、これはとても紛らわしいです。主に2つのことを知りたいだけです:

  1. タブがスライドしないのはなぜですか (なぜ 2 回クリックする必要があるのですか)

  2. TabsAdapter内部クラスを接続して、タブ クラス (すべて ) を表示するにはどうすればよいですかFragments。タブ フラグメント クラス/xml の準備はすべて整っていますが (たとえば、PhotoTab.java、VideoTab.java など)、それらをタブ内のビューに接続するにはどうすればよいですか?

実行して自分で調べたい場合は、これが私のプロジェクト全体です。 アイコレクトキュートアプリ

Fragmentスライダータブコードを入れようとしているものと、それらが描画するxmlのみを以下に含めます。さらにファイルが必要な場合は、お知らせください。他に必要になる可能性がある (おそらく必要ない) ものは、呼び出された Google クラスとSlidingTabLayout、すべての Navigation Drawer コードを配置したSlidingTabStrip私の場所だけです。しかし、スライドタブを実装する必要があるため、CuteMainActivity追加/エラーを探す主な場所は私のクラスです。CuteCollectionFragment

この SO postからコードを取得するのに役立ちました。

ご協力いただきありがとうございます!

CuteCollectionFragment.java

fragment_cute_collection.xml

pager_item.xml

これが私のアダプタークラスの1つです。各タブには、独自のクラスとアダプター クラスがあります。これは 1 つです (ただし、方法がわからないため、まだ CuteCollectionFragment.java に接続していません)。

PhotoTab.java

PhotoTab.java、GridViewPhotoAdapter.javaのアダプター

0 投票する
0 に答える
363 参照

android - PagerSlidingTabStrip - RTL のタイトル テキストが表示されない

私はこのPagerSlidingTabStripを使用しており、英語とアラビア語の両方をサポートしています。これはすべて英語のロケールでは問題なく機能しますが、アラビア語のタイトルで問題に直面しています。アラビア語ロケールでも右から左にスクロールできます。

タブ タイトルのデータには、書式設定された日付文字列 (DD-MMM-YYYY) のみが含まれています。UI にタイトルが表示されませんが、ログを確認すると、これを送信しているため、タイトルが正しく設定されていることがわかります私のリクエストで。

私の最初の仮定は、スタイリングや色に問題があると思っていましたが、そうではありませんでした.

テキストが UI に表示されるようにするにはどうすればよいですか?

PagerSlidingTapStrip からカスタマイズしたクラスは次のとおりです。

更新:この動作は、すべてのデバイスではなく、一部のデバイスでのみ観察されます。

0 投票する
1 に答える
138 参照

pagerslidingtabstrip - PagerSlidingTabStrip フローティング インジケーター

選択したタブの下にインジケーターをフロートさせるオプションはありますか? ここで問題を説明しました: https://github.com/jpardogo/PagerSlidingTabStrip/issues/67カスタムビューをセットアップできるように、フォークされたライブラリを使用しているため

0 投票する
3 に答える
898 参照

android - Play Market のように SlidingTabStrip を中央に配置するにはどうすればよいですか?

https://github.com/google/iosched/blob/master/android/src/main/java/com/google/samples/apps/iosched/ui/widget/SlidingTabLayout.javaタブクラスを使用しています。

プロジェクトに適用した後、 この図に示すように (中央に配置されていない) タブが表示されますが、 Play Marketタブのようにタブを中央に配置したいと考えています。

Google Play アプリのようにタブを中央に配置するにはどうすればよいですか?

0 投票する
1 に答える
1356 参照

android - ナビゲーション ドロワー フラグメントを切り替えた後、フラグメント内に ListView 項目を追加できない

編集: 私のスライド タブ フラグメント ATabs に問題があるようです。ATabs フラグメントを使用せずに、ナビゲーション ドロワーを使用してフラグメント A1 と B を切り替えるだけで、すべて正常に動作します。ListItems の追加が可能です。編集された MainActivity:

しかし、ATabs フラグメント (以下の MainActivity を参照) を使用して切り替えて元に戻すとすぐに、ListItems を追加できなくなりますLog.v(LOG_TAG, "Added Item");追加(+)を押すたびにLogcatが表示されますが。

何が問題の原因なのかわかりません。ATabs がフラグメントではなくアクティビティである必要がある場合、または PagerAdapter が問題を引き起こしている場合。私の ATabs クラスでは、2 つの異なる PagerAdapter を使用してみました。

後者の場合、フラグメント全体が正しく表示されず、タブ間の切り替えもできませんでした。


2 つの異なるフラグメント ATabs と B を表示するナビゲーション ドロワーがあります。フラグメント ATabs には 2 つのスライド タブが含まれています。各タブには、別のフラグメント A1 と A2 が保持されます。今まで A2 と B は単純な TextView を持つ単なる空のフラグメントなので、基本的に同じ A2 = B です。フラグメント A1 には、アプリの起動時にListViewいくつかの事前定義された項目が含まれています。EditTextユーザーは、この特定のフラグメント (A1) の「カスタム」アクション バー内で [追加] を押すことにより、追加の EditText アイテムを追加できます。

一般に、フラグメント A1 は、フラグメント A2 および B とは異なるアクション バー項目を持つ必要があります。これは既に機能しているようです。そのために、各フラグメントにセットを追加し、リソースから目的のメニューを含めて設定するメソッドをsetHasOptionsMenu(true);オーバーライドします。onCreateOptionsMenumenu.clear()

これが私の最初の質問です:とにかく、デフォルトのメインアクティビティアクションバーを使用するすべてのフラグメント内でこれを行う必要がありますか?

そして、私の主な問題は、リスト ビューに項目を追加することです。

アプリの起動時に表示される最初のフラグメント A1 からフラグメント A2 に切り替えて、ATabs フラグメント内の A1 に戻ると、すべて正常に動作します。アイテムを追加でき、以前に追加したアイテムも引き続き表示されます。しかし、ナビゲーション ドロワーを使用してフラグメント B と A1 を切り替えると、アイテムを追加できなくなり、以前に追加したアイテムも表示されません。後でデータベースを使用してアイテムを保存しますが、以前と同様にアイテムを追加することも可能です。

私の問題をよりよく示すためのいくつかの画面を次に示します。

アプリはA1フラグメントで起動、A1とA2を切り替え、+アイテムで追加可能

ATabs フラグメント

ナビゲーション ドロワーを使用して ATabs と B を切り替えた後、追加項目 (+) が表示されますが、フラグメント A1 には影響しません。

ナビゲーション ドロワー、フラグ B、追加できない

ナビゲーション ドロワーを保持する MainActivity は次のとおりです。フラグメント間の 内部の切り替えonNavigationDrawerItemSelectedが正しいかどうか、または切り替えるたびに新しいフラグメントを作成するかどうかはよくわかりません。Android は以前のフラグメントを削除していますか、それとも複数回の切り替え後にメモリ オーバーフローを引き起こしていますか? そして、私の「最初の」A1フラグメントは、新しく作成されたフラグメントの「後ろに隠れていますか?」私は Android にまったく慣れていないので、ナビゲーション ドロワー フラグメントを切り替えた後にアイテムを追加できない理由が本当にわかりません。

スライド タブ付きのフラグメント ATab:

すでに質問されているように:デフォルトのメイン アクティビティ アクション バーを使用するフラグメント内で呼び出しsetHasOptionsMenu(true)てオーバーライドする必要がありますか?onCreateOptionsMenu()

以下は、デフォルトのメイン アクティビティ アクション バーを使用したフラグメント A2 (クラス B と同じ) です。

フラグメント A1 は、独自の a1 アクション バー メニュー(追加の追加項目) を使用します。

そして最後にアクションバーのメニュー: main:

a1:

私の問題を解決するために他のコードが必要な場合はお知らせください。

0 投票する
2 に答える
3484 参照

android-fragments - java.lang.ClassCastException: android.widget.LinearLayout は android.support.v4.app.Fragment にキャストできません

java.lang.ClassCastException: android.widget.LinearLayout cannot be cast to android.support.v4.app.Fragmentアプリでアクティビティを開こうとすると、このエラーが発生しますCuteCollection.java。奇妙な点は(FragmentPagerAdapter.java:122)、logcat エラーの最初の行をクリックすると、v4.supportライブラリ内のファイルの行が表示されることです。そのコードを編集することはできないので、変更できるコードがコードにあるはずです。

このアクティビティにアクセスするにHomeFragment.javaは、フラグメント内のボタンをクリックします。これは、ナビゲーション ドロワー内のフラグメントであり、ナビゲーション ドロワー内のandroid.support.v4.app.Fragmentすべての項目と同じように、拡張機能もあります。

私はそれが私のと関係があるかもしれないと思いますFragmentPagerAdpater。すべてを に変更しandroid.app.Fragmentましandroid.support.v4.app.Fragmentたが、それでも同じエラーです。

support.v4更新:と呼ばれるライブラリの最初の行をクリックするとFragmentPagerAdapter、そのクラスがFragment fragment = (Fragment)object;表示され、このメソッドの一部である強調表示されます (ただし、Android からのものであるため、これを編集することはできません)。

ヒントやアドバイスはありますか?ありがとう。

CuteCollectionFragment.java

fragment_cute_collection.xml

ログキャット

0 投票する
1 に答える
360 参照

android - Android の PagerSlidingTabStrip ですべてのタブに同じ幅を設定するにはどうすればよいですか?

各タブを PagerSlidingTabStrip の最も幅の広いタブと同じ幅にしたいです。タブをスクロールできるように、タブを画面幅を超えて拡張したい.

0 投票する
2 に答える
1623 参照

android - Android Studio でプロジェクトに外部ライブラリを追加するにはどうすればよいですか?

プロジェクトでpagerslidingtabstripを使用したいと考えています。jar ファイルではないためです。どうすればそれをインポートできますか?

いくつかの記事とこれに関する回答を読みましたが、どちらも明確ではなく、すべてが時代遅れであるか複雑です。

手順を明確に提案できますか?