【发布时间】:2018-10-20 20:04:53
【问题描述】:
你好吗? 我是android编程的新手。我正面临一个我试图处理的问题。但是,我做不到。 我创建了一个新项目。选项卡式活动。
我已经更改了它的一些设置。 对于每个选项卡,我创建一个片段。 我在 MainActity 布局中保留了默认的 floatingActionButton。 我试图从一个片段中访问它。
出现错误。 这是我的 MainActivity 类:
public class MainActivity extends AppCompatActivity {
private SectionsPagerAdapter mSectionsPagerAdapter;
private ViewPager mViewPager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
// Create the adapter that will return a fragment for each of the three
// primary sections of the activity.
mSectionsPagerAdapter = new SectionsPagerAdapter(getSupportFragmentManager());
mViewPager = (ViewPager) findViewById(R.id.container);
mViewPager.setAdapter(mSectionsPagerAdapter);
TabLayout tabLayout = (TabLayout) findViewById(R.id.Main_FAB);
mViewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tabLayout));
tabLayout.addOnTabSelectedListener(new TabLayout.ViewPagerOnTabSelectedListener(mViewPager));
}
public class SectionsPagerAdapter extends FragmentPagerAdapter {
public SectionsPagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
switch (position)
{
case 0 : Summary summary = new Summary(); return summary ;
case 1 : Expense_items expenseItems = new Expense_items(); return expenseItems;
case 2 : Linage_items linage_items= new Linage_items(); return linage_items;
default: return null;
}
}
@Override
public int getCount() {
// Show 3 total pages.
return 3;
}
}
}
我的摘要片段如下:
public class Summary extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_summary, container, false);
TextView summary_text = (TextView) rootView.findViewById(R.id.summary_text);
summary_text.setText("You are in Summary Fragment Fragment");
FloatingActionButton myFB = (FloatingActionButton) rootView.findViewById(R.id.fab);
return rootView;
}
}
在我的 MainActivity 布局中,我创建了 floatingActionButton,如下所示:
<android.support.design.widget.FloatingActionButton
android:id="@+id/Main_FAB"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="end|bottom"
android:layout_margin="@dimen/fab_margin"
app:srcCompat="@android:drawable/ic_dialog_email" />
我不想在 Fragments 中创建 FloatingActionButton 的原因是我不想更改它在布局中的位置。
【问题讨论】:
标签: android android-fragments floating-action-button