0

最初の Android アプリケーションに ActionbarSherlock を正常に実装し、現在 ViewPager を実装していますが、あまり成功していません。

アクション バーには現在 2 つのタブが含まれており、それぞれが SherlockListFragment をロードします。

問題は、アプリケーションが読み込まれると、最初のリストフラグメントが読み込まれ、すぐに 2 番目のリストフラグメントが画面上の最初のリストフラグメントに置き換わることです。

2 番目のタブをスワイプまたはクリックしても、何も表示されません。

2 番目の listfragment が画面上の最初のものを置き換えているようです。

他の誰かが同様の状況に遭遇しましたか?

ありがとう

4

2 に答える 2

0

すべてをゼロから始めるのではなく、最初に機能するサンプル ビュー ページャー プロジェクトを作成し、ゆっくりと変更して actionbarsherlock などを含めることができます。

[ファイル] -> [新規] -> [プロジェクト] -> [Android アプリケーション プロジェクト] に移動します。[完了] をクリックする前にいくつかの次のボタンを押した後、「ナビゲーション タイプ」というオプションがあります。「固定タブ + スワイプ」または「スクロール可能なタブ + スワイプ」を選択して、[完了] をクリックします。

11 未満の api をサポートする場合は、プロジェクトが作成されるように最初に最小 api 11 を設定し、コードを変更してサポート ライブラリを含めた後、ファイル manifest.xml で最小 api レベルを変更します。

于 2013-07-04T05:29:52.390 に答える
0

問題発見!

私の SherlockListFragments update メソッドには、次のものがありました。

final ListView listview = (ListView) getActivity().findViewById(android.R.id.list);

問題は、「getActivity()」がアプリケーションの現在のアクティビティを取得することです。これは、現在 ViewPager を管理している全体的な SherlockActivity です。

したがって、これを次のように変更しました。

final ListView listview = (ListView) myCurrentView.findViewById(android.R.id.list);

myCurrentView は私の OnCreateView で次のように設定されました。

View V = inflater.inflate(R.layout.contacts_list, container, false);
    myCurrentView = V;

これが将来別のプログラマーに役立つことを願っています。

于 2013-07-04T07:27:34.397 に答える