0
기본 문자 Android Studio
ActionBar 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
싶어요.
가이드를 따라 '탐색 용 서랍'을 가지고있는 방법을 알고 있지만 지금 가지고있는 코드로 내가 원하는 코드를 적용하는 방법을 알지 못합니다. – Rick
먼저 문서 (Drawer Layout 섹션 만들기)에 따라 레이아웃을 변경해야하지만 FrameLayout 대신 현재 뷰 계층 구조 (레이아웃 파일에있는 레이아웃 계층 구조)를 삽입해야합니다. 둘째, 서랍의 ListView에 일부 항목 (서랍 목록 초기화 섹션 채우기)을 채워야합니다. 희망이 도움이됩니다. – Ayzen
이것은 activity_main입니다 : _ _ 대신 FrameLayout을 삽입해야하나요? –
Rick