다른 활동으로 이끌지 않는 탭이있는 패널이 포함 된 응용 프로그램을 보았습니다. TabHost + Fragment 요소가 사용되는 곳입니다.Tabhost + fragments
이 기능을 구현하는 데 귀하의 가정 /주의 사항/링크를 제공해주십시오.
다른 활동으로 이끌지 않는 탭이있는 패널이 포함 된 응용 프로그램을 보았습니다. TabHost + Fragment 요소가 사용되는 곳입니다.Tabhost + fragments
이 기능을 구현하는 데 귀하의 가정 /주의 사항/링크를 제공해주십시오.
ViewPager를 사용할 수 있습니다. FragmentPagerAdapter를 구현하는
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<android.support.v4.view.ViewPager
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1" />
</RelativeLayout>
는 ViewPager에 여러 개의 조각을로드하려면, 당신은 한 :
먼저 레이아웃에 ViewPager 포함 (당신은 이전 버전에 대한 호환성 패키지의 하나를 사용할 수 있습니다)
그런 다음public class MyPagerAdapter extends FragmentPagerAdapter {
private Fragment fragment1;
private Fragment fragment2;
public ChartPagerAdapter(FragmentManager fm, Context context) {
super(fm);
fragment1 = new MyFragment();
fragment2 = new MyFragment();
}
@Override
public Fragment getItem(int position) {
switch (position) {
case 0:
return fragment1;
case 1:
return fragment2;
}
}
@Override
public int getCount() {
return 2;
}
@Override
public String getPageTitle(int position) {
switch (position) {
case 0:
return "Title 1";
case 1:
return "Title 2";
}
}
}
당신은 ViewPager에이 어댑터를 설정합니다
setContentView(R.layout.my_layout);
MyPagerAdapter adapter = new MyPagerAdapter(getSupportFragmentManager(), MyActivity.this);
ViewPager pager = (ViewPager)findViewById(R.id.pager);
pager.setAdapter(adapter);
당신은 TabActivity
을 확장 할 수 있습니다,이 같은 :
public class NavigationBarActivity extends TabActivity (
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
setTabs();
}
private void setTabs(){
TabHost tabHost = getTabHost(); // The activity TabHost
TabHost.TabSpec spec; // Reusable TabSpec for each tab
Intent intent; // Reusable Intent for each tab
LayoutInflater inflater = getLayoutInflater();
// tab 1------------------------------
View tabView = inflater.inflate(R.layout.tab1, null, false);
ImageView tabImage = (ImageView)tabView.findViewById(R.id.tabImage);
TextView tabText = (TextView)tabView.findViewById(R.id.tabText);
// set icon
tabImage.setImageResource(R.drawable.tab1);
// set tab text
tabText.setText(R.string.tab1);
// Create an Intent to launch an Activity for the tab (to be reused)
intent = new Intent().setClass(this, Activity1.class);
// Initialize a TabSpec for each tab and add it to the TabHost
spec = tabHost.newTabSpec("ta1");
spec.setIndicator(tabView);
spec.setContent(intent);
tabHost.addTab(spec);
// tab 2 -----------------------------------------
tabView = inflater.inflate(R.layout.tab2, null, false);
tabImage = (ImageView)tabView.findViewById(R.id.tabImage);
tabText = (TextView)tabView.findViewById(R.id.tabText);
// set icon
tabImage.setImageResource(R.drawable.tab2);
// set tab text
tabText.setText(R.string.tab2);
intent = new Intent().setClass(this, ChatListActivity.class);
spec = tabHost.newTabSpec("tab2");
spec.setIndicator(tabView);
spec.setContent(intent);
tabHost.addTab(spec);
tabHost.setOnTabChangedListener(this);
}
@Override
public void onTabChanged(String tabId) {
if(getTabHost().getCurrentTab() == 0) {
// WE are on tab1 ...
}
}
}
TabActivity는 더 이상 사용되지 않습니다. 사용법은 권장하지 않습니다. –
니스, 나는이 보지 못했지만 여기
은 내가 찾은 2 개 개의 좋은 링크가 있습니다 접근. 그렇다면 Tabhost + 파편보다 더 나은 이유는 무엇입니까? – user1462299
낫지는 않지만 페이지간에 전환하는 아주 부드러운 방법 인 스 와이프 기능을 제공합니다. 또한 구현은 매우 엄격합니다. –
위대한, 그게 내가 필요합니다. 감사합니다 – user1462299