尝试在 actionBarActivity 中启动片段
Trying to launch fragment inside actionBarActivity
-
android
-
android-actionbar
-
android-fragmentactivity
-
android-actionbar-compat
-
android-actionbaractivity
我已经检查了很多关于如何启动我的片段的解决方案,但到目前为止没有任何效果。我很感激我能得到的任何帮助
我要的是把fragment里面的内容拿来展示
我有 2 个可用的选项卡,但每个选项卡内的片段不显示内容,因为该片段从未被午餐过。这很奇怪,因为片段扩展了 actionBarActivity。但是,如果我使 mainActivity extende fragmentActivity 工作,但我的选项卡不工作。
Tab.setCurrentItem(tab.getPosition()); 好像不行
android清单中的主题
android:主题="@style/Theme.AppCompat.Light.DarkActionBar"
主要活动
import android.os.Bundle;
import android.support.v4.view.ViewPager;
import android.support.v7.app.ActionBar;
import android.support.v7.app.ActionBarActivity;
import is.at.work.lottostokkur.R;
import is.at.work.lottostokkur.adapter.TabPagerAdapter;
public class MainActivity extends ActionBarActivity {
ViewPager Tab;
TabPagerAdapter TabAdapter;
ActionBar actionBar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TabAdapter = new TabPagerAdapter(getSupportFragmentManager());
actionBar = getSupportActionBar();
Tab = (ViewPager)findViewById(R.id.pager);
Tab.addOnPageChangeListener(
new ViewPager.SimpleOnPageChangeListener() {
@Override
public void onPageSelected(int position) {
actionBar = getSupportActionBar();
actionBar.setSelectedNavigationItem(position);
}
});
//Enable Tabs on Action Bar
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
ActionBar.TabListener tabListener = new ActionBar.TabListener() {
@Override
public void onTabSelected(ActionBar.Tab tab, android.support.v4.app.FragmentTransaction fragmentTransaction) {
Tab.setCurrentItem(tab.getPosition());
}
@Override
public void onTabUnselected(ActionBar.Tab tab, android.support.v4.app.FragmentTransaction fragmentTransaction) {
}
@Override
public void onTabReselected(ActionBar.Tab tab, android.support.v4.app.FragmentTransaction fragmentTransaction) {
}
};
//Add New Tab
actionBar.addTab(actionBar.newTab().setText("Lottó").setTabListener(tabListener));
actionBar.addTab(actionBar.newTab().setText("About").setTabListener(tabListener));
}
}
还有我的activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:id="@+id/lottoId"
android:orientation="vertical" >
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="50sp"/>
</LinearLayout>
这是我要启动的片段
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import is.at.work.lottostokkur.R;
public class LottoFragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.
inflate(R.layout.lotto, container, false);
((TextView)view.findViewById(R.id.textView)).setText("iOS");
return view;
}
}
我的适配器
public class TabPagerAdapter extends FragmentStatePagerAdapter {
public TabPagerAdapter(FragmentManager fm) {
super(fm);
// TODO Auto-generated constructor stub
}
@Override
public Fragment getItem(int i) {
switch (i) {
case 0:
//Fragement for Lotto Tab
return new LottoFragment();
case 1:
//Fragment for About Tab
return new AboutFragment();
}
return null;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return 2; //No of Tabs
}
}
TLDR;
I can't see the line that you set adapter to ViewPager
in your case you should add following:
Tab.setAdapter(TabAdapter);
首先,我建议使用 AppCompatActivity
,因为其他的都已贬值。
而且我建议您不要使用 actionbar.setNavigationMode()
方法,因为它也会贬值。
您还有很多其他选项来实现选项卡导航。
android
android-actionbar
android-fragmentactivity
android-actionbar-compat
android-actionbaractivity
我已经检查了很多关于如何启动我的片段的解决方案,但到目前为止没有任何效果。我很感激我能得到的任何帮助
我要的是把fragment里面的内容拿来展示
我有 2 个可用的选项卡,但每个选项卡内的片段不显示内容,因为该片段从未被午餐过。这很奇怪,因为片段扩展了 actionBarActivity。但是,如果我使 mainActivity extende fragmentActivity 工作,但我的选项卡不工作。
Tab.setCurrentItem(tab.getPosition()); 好像不行
android清单中的主题 android:主题="@style/Theme.AppCompat.Light.DarkActionBar"
主要活动
import android.os.Bundle;
import android.support.v4.view.ViewPager;
import android.support.v7.app.ActionBar;
import android.support.v7.app.ActionBarActivity;
import is.at.work.lottostokkur.R;
import is.at.work.lottostokkur.adapter.TabPagerAdapter;
public class MainActivity extends ActionBarActivity {
ViewPager Tab;
TabPagerAdapter TabAdapter;
ActionBar actionBar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TabAdapter = new TabPagerAdapter(getSupportFragmentManager());
actionBar = getSupportActionBar();
Tab = (ViewPager)findViewById(R.id.pager);
Tab.addOnPageChangeListener(
new ViewPager.SimpleOnPageChangeListener() {
@Override
public void onPageSelected(int position) {
actionBar = getSupportActionBar();
actionBar.setSelectedNavigationItem(position);
}
});
//Enable Tabs on Action Bar
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
ActionBar.TabListener tabListener = new ActionBar.TabListener() {
@Override
public void onTabSelected(ActionBar.Tab tab, android.support.v4.app.FragmentTransaction fragmentTransaction) {
Tab.setCurrentItem(tab.getPosition());
}
@Override
public void onTabUnselected(ActionBar.Tab tab, android.support.v4.app.FragmentTransaction fragmentTransaction) {
}
@Override
public void onTabReselected(ActionBar.Tab tab, android.support.v4.app.FragmentTransaction fragmentTransaction) {
}
};
//Add New Tab
actionBar.addTab(actionBar.newTab().setText("Lottó").setTabListener(tabListener));
actionBar.addTab(actionBar.newTab().setText("About").setTabListener(tabListener));
}
}
还有我的activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:id="@+id/lottoId"
android:orientation="vertical" >
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="50sp"/>
</LinearLayout>
这是我要启动的片段
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import is.at.work.lottostokkur.R;
public class LottoFragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.
inflate(R.layout.lotto, container, false);
((TextView)view.findViewById(R.id.textView)).setText("iOS");
return view;
}
}
我的适配器
public class TabPagerAdapter extends FragmentStatePagerAdapter {
public TabPagerAdapter(FragmentManager fm) {
super(fm);
// TODO Auto-generated constructor stub
}
@Override
public Fragment getItem(int i) {
switch (i) {
case 0:
//Fragement for Lotto Tab
return new LottoFragment();
case 1:
//Fragment for About Tab
return new AboutFragment();
}
return null;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return 2; //No of Tabs
}
}
TLDR;
I can't see the line that you set adapter to
ViewPager
in your case you should add following:
Tab.setAdapter(TabAdapter);
首先,我建议使用 AppCompatActivity
,因为其他的都已贬值。
而且我建议您不要使用 actionbar.setNavigationMode()
方法,因为它也会贬值。
您还有很多其他选项来实现选项卡导航。