Я слежу за http://developer.android.com/training/implementing-navigation/lateral.html, чтобы создать обзор с фрагментами.Как добавить панель действий в режим прокрутки?
В частности, я взял блок кода
public class CollectionDemoActivity extends FragmentActivity {
// When requested, this adapter returns a DemoObjectFragment,
// representing an object in the collection.
DemoCollectionPagerAdapter mDemoCollectionPagerAdapter;
ViewPager mViewPager;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_collection_demo);
// ViewPager and its adapters use support library
// fragments, so use getSupportFragmentManager.
mDemoCollectionPagerAdapter =
new DemoCollectionPagerAdapter(
getSupportFragmentManager());
mViewPager = (ViewPager) findViewById(R.id.pager);
mViewPager.setAdapter(mDemoCollectionPagerAdapter);
}
}
// Since this is an object collection, use a FragmentStatePagerAdapter,
// and NOT a FragmentPagerAdapter.
public class DemoCollectionPagerAdapter extends FragmentStatePagerAdapter {
public DemoCollectionPagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int i) {
Fragment fragment = new DemoObjectFragment();
Bundle args = new Bundle();
// Our object is just an integer :-P
args.putInt(DemoObjectFragment.ARG_OBJECT, i + 1);
fragment.setArguments(args);
return fragment;
}
@Override
public int getCount() {
return 100;
}
@Override
public CharSequence getPageTitle(int position) {
return "OBJECT " + (position + 1);
}
}
// Instances of this class are fragments representing a single
// object in our collection.
public static class DemoObjectFragment extends Fragment {
public static final String ARG_OBJECT = "object";
@Override
public View onCreateView(LayoutInflater inflater,
ViewGroup container, Bundle savedInstanceState) {
// The last two arguments ensure LayoutParams are inflated
// properly.
View rootView = inflater.inflate(
R.layout.fragment_collection_object, container, false);
Bundle args = getArguments();
((TextView) rootView.findViewById(android.R.id.text1)).setText(
Integer.toString(args.getInt(ARG_OBJECT)));
return rootView;
}
}
и расширил его, чтобы удовлетворить свои потребности.
Как изменить это, чтобы в верхней части экрана была панель действий с указанием только имени операции (в центре) и значка приложения и стрелки для возврата родительской активности (к оставил)?
Я попытался добавить
final ActionBar actionBar = getActionBar();
actionBar.setHomeButtonEnabled(true);
к CollectionDemoActivity OnCreate в приведенном выше коде, но это вызывает мое приложение к сбою.
Edit:
Мой styles.xml включает
<style name="AppBaseTheme" parent="Theme.AppCompat.Light">
<style name="AppTheme" parent="AppBaseTheme">
Мой манифест включает
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
... теги активности внутри приложения. Ни один из этих действий не отменяет андроид: тема, установленная на уровне приложения. Родительская активность имеет панель действий, но ребенок (активность прокрутки, о которой я прошу в этом сообщении), нет.
Ваша тема должна поддерживать наличие ActionBar. Если вы просто попытаетесь получить доступ к нему без поддержки темы, то вы получите исключение NullPointerException и сбой. –
Я думаю, что это уже делает: родительская активность (та, которая запускает активность салфетки) имеет панель действий, например. Будет редактировать сообщение и добавлять дополнительную информацию. – Adrian
Темы могут быть основаны на активности по видам деятельности, но если вы уверены, что в этом конкретном действии есть тема, тогда вы можете взглянуть на дополнительную информацию, которая у вас есть. –