gpt4 book ai didi

Android 垂直操作栏选项卡

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:05:41 30 4
gpt4 key购买 nike

我已经设法在 android 4.1 中获得没有 Tabactivity 的 Tabs。我的意思是使用 FragmentActivity、fragments 和 actionbar。我有标签每当我点击任何标签时,它都会加载每个 fragment 。现在我的问题是我需要在结构之类的垂直选项卡中使用相同的内容。

 public class MainActivity extends FragmentActivity {

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


ActionBar actionbar = getActionBar();
actionbar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);

View view1 = LayoutInflater.from(this).inflate(R.layout.action_bar_layout, null);
((TextView) view1.findViewById(R.id.textView)).setText("Tab1");

ActionBar.Tab tab1 = actionbar.newTab().setCustomView(view1);

View view2 = LayoutInflater.from(this).inflate(R.layout.action_bar_layout, null);
((TextView) view2.findViewById(R.id.textView)).setText("Tab2");

ActionBar.Tab tab2 = actionbar.newTab().setCustomView(view2);

View view3 = LayoutInflater.from(this).inflate(R.layout.action_bar_layout, null);
((TextView) view3.findViewById(R.id.textView)).setText("Tab3");

ActionBar.Tab tab3 = actionbar.newTab().setCustomView(view3);

View view4 = LayoutInflater.from(this).inflate(R.layout.action_bar_layout, null);
((TextView) view4.findViewById(R.id.textView)).setText("Tab4");

ActionBar.Tab tab4 = actionbar.newTab().setCustomView(view4);

View view5 = LayoutInflater.from(this).inflate(R.layout.action_bar_layout, null);
((TextView) view5.findViewById(R.id.textView)).setText("Tab5");

ActionBar.Tab tab5 = actionbar.newTab().setCustomView(view5);

Fragment fragment1 = new Fragment1();
Fragment fragment2 = new Fragment2();
Fragment fragment3 = new Fragment3();
Fragment fragment4 = new Fragment4();
Fragment fragment5 = new Fragment5();

tab1.setTabListener(new MyTabsListener(fragment1, view1));
tab2.setTabListener(new MyTabsListener(fragment2, view2));
tab3.setTabListener(new MyTabsListener(fragment3, view3));
tab4.setTabListener(new MyTabsListener(fragment4, view4));
tab5.setTabListener(new MyTabsListener(fragment5, view5));

actionbar.addTab(tab1);
actionbar.addTab(tab2);
actionbar.addTab(tab3);
actionbar.addTab(tab4);
actionbar.addTab(tab5);

}

class MyTabsListener implements TabListener {
public Fragment fragment;
public View view;

public MyTabsListener(Fragment fragment, View view) {
this.fragment = fragment;
this.view = view;
}

@Override
public void onTabReselected(Tab tab, android.app.FragmentTransaction ft) {
System.out.println("onTabReselected");

}

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

((RelativeLayout) view.findViewById(R.id.rootElement)).setBackgroundColor(Color.WHITE);
((TextView) view.findViewById(R.id.textView)).setTextColor(Color.BLACK);

FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
fragmentTransaction.replace(R.id.mainFragement, fragment);
fragmentTransaction.commit();

}

@Override
public void onTabUnselected(Tab tab, android.app.FragmentTransaction ft) {
((RelativeLayout) view.findViewById(R.id.rootElement)).setBackgroundColor(Color.BLACK);
((TextView)view.findViewById(R.id.textView)).setTextColor(Color.WHITE);
}
}
}

我的 activity_main.xml 是,

    <?xml version="1.0" encoding="utf-8"?>
<LinearLayout
android:layout_gravity="center"
android:layout_height="fill_parent"
android:layout_width="fill_parent"
android:orientation="vertical"
xmlns:android="http://schemas.android.com/apk/res/android"
>
<LinearLayout
android:id="@+id/fragment_container"
android:layout_height="match_parent"
android:layout_width="match_parent"
>
<FrameLayout
android:id="@+id/mainFragement"
android:layout_width="match_parent"
android:layout_height="match_parent" >
</FrameLayout>
</LinearLayout>

最佳答案

操作栏不支持我认为的“类似结构的垂直选项卡”。事实上,“垂直标签结构”在Android中并不常见。您将看到的最接近的东西是在横向的平板电脑应用程序中,左侧有一个 ListView 控制右侧 UI 的内容(所谓的“主从”模式)。

关于Android 垂直操作栏选项卡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12333040/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com