1

質問は見かけほど複雑ではありません。インターネット上のいくつかのチュートリアルに基づいてこのデザインを作成しました。ハニカムが視覚化できるようになる前に、デバイスの SupportLibrary を使用してスワイプでタブ ブラウジングを行っています。

次に、アプリケーションに ActionBar を追加します。また、SuportLibrary appcompat.v7 を使用します。

appcompat.v7 を使用して、古いバージョンの Android と互換性のある ActionBar を備えたアプリケーションを作成しました。

私が今得ていないことと、これらの 2 つのナビゲーション構造を結合します。

以下のスワイプタブを使用して、このmu ActionBarプロジェクトに追加したいと本当に思っています。

メインアクティビティ:

package br.com.wgbn.poemadodiav2;

import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.support.v4.view.ViewPager;
import android.support.v7.app.ActionBar;
import android.view.Menu;

public class MainActivity extends FragmentActivity {

    private ActionBar actionBar;
    private ViewPager mViewPager;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        mViewPager = (ViewPager) findViewById(R.id.viewpager);

        TitleAdapter titleAdapter = new TitleAdapter(getSupportFragmentManager());
        mViewPager.setAdapter(titleAdapter);
        mViewPager.setCurrentItem(0);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

}

タイトルアダプター:

package br.com.wgbn.poemadodiav2;

import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.util.Log;

public class TitleAdapter extends FragmentPagerAdapter{
        private String titles[] = new String[]{"O Poema do Dia","Comentários"};
        private Fragment frags[] = new Fragment[titles.length]; 

        public TitleAdapter(FragmentManager fm) {
                super(fm);
                frags[0] = new FragmentView1();
                frags[1] = new FragmentView2();
        }

        @Override
        public CharSequence getPageTitle (int position){
                Log.v("TitleAdapter - getPageTitle=", titles[position]);
                return titles[position];
        }

        @Override
        public Fragment getItem(int position) {
                Log.v("TitleAdapter - getItem=", String.valueOf(position));
                return frags[position];
        }

        @Override
        public int getCount() {
                return frags.length;
        }

}

activity_main.xml :

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

    <android.support.v4.view.ViewPager
       android:id="@+id/viewpager"
       android:layout_width="fill_parent"
       android:layout_height="0dp"
       android:layout_weight="1">

            <android.support.v4.view.PagerTabStrip
                android:id="@+id/pagerTabStrip"
                android:layout_gravity="bottom"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:background="#cccccc"/>

    </android.support.v4.view.ViewPager>

</LinearLayout>

これまでのアプリの動作イメージです。

ここに画像の説明を入力

あなたが私を助けてくれることを願っています。

編集

NikolaDespotoski の指導に従い、ActionBarActivity の拡張クラスのみを変更することを決定しました。実際には、ActionBarActivity が既に両方を包含していることに気づかずに、2 つのことを一緒に実装する必要があると考えていました。私のコードは次のようになり、うまくいきました:

android.os.Bundle をインポートします。android.support.v4.view.ViewPager をインポートします。android.support.v7.app.ActionBar をインポートします。android.support.v7.app.ActionBarActivity をインポートします。android.view.Menu をインポートします。

public class MainActivity extends ActionBarActivity {
    // code here
}

ありがとう!

4

0 に答える 0