2014-09-14 6 views
0

기본 문자 Android StudioActionBar Tab + Swipe Views을 사용자 정의했으며 지금은 Navigation Drawer 레이아웃이있는 홈 페이지를 갖고 싶습니다. 왼쪽으로 스 와이프하면 탭 레이아웃으로 입력됩니다. 제발 도와 주실 수 있습니까? 어디서부터 시작해야할지 모르겠다.홈페이지 용 탐색 서랍 레이아웃을 만듭니다

편집 이 내 MainActivity입니다 :

여기
public class MainActivity extends FragmentActivity implements 
    ActionBar.TabListener, android.app.ActionBar.TabListener { 
CollectionPagerAdapter mCollectionPagerAdapter; 
ViewPager mViewPager; 
SharedPreferences mPrefs; 
final String welcomeScreenShownPref = "welcomeScreenShown"; 


public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS); 
    setProgressBarIndeterminateVisibility(true); 
    setProgressBarIndeterminateVisibility(false); 
    setContentView(R.layout.activity_main); 

    mPrefs = PreferenceManager.getDefaultSharedPreferences(this); 

    Boolean welcomeScreenShown = mPrefs.getBoolean(welcomeScreenShownPref, false); 

    if (!welcomeScreenShown) { 


     String whatsNewText = getResources().getString(R.string.Text); 
     new AlertDialog.Builder(this, AlertDialog.THEME_HOLO_LIGHT).setMessage(whatsNewText).setPositiveButton(
       android.R.string.ok, new DialogInterface.OnClickListener(){ 
      public void onClick(DialogInterface dialog, int which) { 
       dialog.dismiss(); 
      } 
     }).show(); 
     SharedPreferences.Editor editor = mPrefs.edit(); 
     editor.putBoolean(welcomeScreenShownPref, true); 
     editor.commit(); // Very important to save the preference 
    } 

    mCollectionPagerAdapter = new CollectionPagerAdapter(
      getSupportFragmentManager()); 

    final android.app.ActionBar actionBar = getActionBar(); 
    actionBar.setDisplayShowTitleEnabled(false); 
    actionBar.setDisplayShowHomeEnabled(false); 
    actionBar.setDisplayUseLogoEnabled(false); 
    actionBar.setHomeButtonEnabled(false); 
    actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); 
    actionBar.setStackedBackgroundDrawable(new ColorDrawable(getResources().getColor(R.color.tab_color))); 
    mViewPager = (ViewPager) findViewById(R.id.pager); 
    mViewPager.setAdapter(mCollectionPagerAdapter); 
    mViewPager.setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() { 

     @Override 

     public void onPageSelected(int position) { 
      actionBar.setSelectedNavigationItem(position); 
     } 

    }); 
    for (int i = 0; i < mCollectionPagerAdapter.getCount(); i++) { 
     actionBar.addTab(actionBar.newTab() 
       .setText(mCollectionPagerAdapter.getPageTitle(i)) 
       .setTabListener(this)); 

    } 

} 

public void onTabUnselected(ActionBar.Tab tab, 
          FragmentTransaction fragmentTransaction) { 

} 

public void onTabSelected(ActionBar.Tab tab, 
          FragmentTransaction fragmentTransaction) { 
    mViewPager.setCurrentItem(tab.getPosition()); 

} 

public void onTabReselected(ActionBar.Tab tab, 
          FragmentTransaction fragmentTransaction) { 

} 

@Override 
public void onTabSelected(android.app.ActionBar.Tab tab, android.app.FragmentTransaction ft) { 
    mViewPager.setCurrentItem(tab.getPosition()); 

} 

@Override 
public void onTabUnselected(android.app.ActionBar.Tab tab, android.app.FragmentTransaction ft) { 

} 

@Override 
public void onTabReselected(android.app.ActionBar.Tab tab, android.app.FragmentTransaction ft) { 

} 

public class CollectionPagerAdapter extends FragmentPagerAdapter { 

    //final int NUM_ITEMS = 11; // number of tabs 

    public CollectionPagerAdapter(FragmentManager fm) { 
     super(fm); 

    } 

    @Override 
    public Fragment getItem(int position) 
    { 

     switch (position) { 
      case 0: 
       return new Tab1Activity(); 
      case 1: 
       return new Tab2Activity(); 
      case 2: 
       return new Tab3Activity(); 
      case 3: 
       return new Tab4Activity(); 
      case 4: 
       return new Tab5Activity(); 
      case 5: 
       return new Tab6Activity(); 
      case 6: 
       return new Tab7Activity(); 
      case 7: 
       return new Tab8Activity(); 
      case 8: 
       return new Tab9Activity(); 
      case 9: 
       return new Tab10Activity(); 
      case 10: 
       return new Tab11Activity(); 
     } 

     return null; 
    } 

    @Override 
    public int getCount() 
    { 
     return 11; 
    } 

    @Override 
    public CharSequence getPageTitle(int position) { 
     switch (position) 
     { 
      case 0: 
       return getString(R.string.label1); 
      case 1: 
       return getString(R.string.label2); 
      case 2: 
       return getString(R.string.label3); 
      case 3: 
       return getString(R.string.label4); 
      case 4: 
       return getString(R.string.label5); 
      case 5: 
       return getString(R.string.label6); 
      case 6: 
       return getString(R.string.label7); 
      case 7: 
       return getString(R.string.label8); 
      case 8: 
       return getString(R.string.label9); 
      case 9: 
       return getString(R.string.label10); 
      case 10: 
       return getString(R.string.label11); 
     } 
     return null; 
    } 
} 

@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; 
} 
@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    // Handle item selection 
    int i = item.getItemId(); 
    if (i == R.id.actiorn) { 
     Intent intent = new Intent(MainActivity.this, SettingsActivity.class); 
     MainActivity.this.startActivity(intent); 
     return true; 
    } else { 
     return super.onOptionsItemSelected(item); 
    } 
} 

내가 그렇게 11 개 레이아웃 11 개 탭이 있지만 액션 바는 없다. 난 그냥 바보 같은 액션 바 (내가 더 잘 이해할 수 있도록 설계도를 만들었습니다)와 홈페이지에 Navigation Drawer 싶어요. enter image description here

답변

1

안드로이드에서 내비게이션 창을 만드는 방법은 documentation부터 시작해야한다고 생각합니다.

또는 구현에 문제가 있습니까? 그렇다면 세부 정보를 제공하십시오.

+0

가이드를 따라 '탐색 용 서랍'을 가지고있는 방법을 알고 있지만 지금 가지고있는 코드로 내가 원하는 코드를 적용하는 방법을 알지 못합니다. – Rick

+0

먼저 문서 (Drawer Layout 섹션 만들기)에 따라 레이아웃을 변경해야하지만 FrameLayout 대신 현재 뷰 계층 구조 (레이아웃 파일에있는 레이아웃 계층 구조)를 삽입해야합니다. 둘째, 서랍의 ListView에 일부 항목 (서랍 목록 초기화 섹션 채우기)을 채워야합니다. 희망이 도움이됩니다. – Ayzen

+0

이것은 activity_main입니다 : _ _ 대신 FrameLayout을 삽입해야하나요? – Rick