我已经设置了一个片段,根据页面的不同,片段应该显示或隐藏其中的一些元素:
public static class PlaceholderFragment extends Fragment {
/**
* The fragment argument representing the section number for this
* fragment.
*/
private static final String ARG_SECTION_NUMBER = "section_number";
public PlaceholderFragment() {
}
/**
* Returns a new instance of this fragment for the given section
* number.
*/
public static PlaceholderFragment newInstance(int sectionNumber) {
PlaceholderFragment fragment = new PlaceholderFragment();
Bundle args = new Bundle();
args.putInt(ARG_SECTION_NUMBER, sectionNumber);
fragment.setArguments(args);
return fragment;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_install__ubuntu, container, false);
TextView textView = (TextView) rootView.findViewById(R.id.top_text);
TextView middleText = (TextView) rootView.findViewById(R.id.middle_text);
TextView bottomText = (TextView) rootView.findViewById(R.id.bottom_text);
Button imageDownload = (Button) rootView.findViewById(R.id.btn_DownloadImage);
Button vnc = (Button) rootView.findViewById(R.id.btn_DownloadVNC);
Button terminal = (Button) rootView.findViewById(R.id.btn_DownloadTerminal);
int pageNumber = getArguments().getInt(ARG_SECTION_NUMBER);
switch (pageNumber) {
case 0:
textView.setVisibility(View.VISIBLE);
middleText.setVisibility(View.GONE);
bottomText.setVisibility(View.GONE);
imageDownload.setVisibility(View.GONE);
vnc.setVisibility(View.GONE);
terminal.setVisibility(View.GONE);
case 1:
textView.setVisibility(View.VISIBLE);
middleText.setVisibility(View.VISIBLE);
bottomText.setVisibility(View.VISIBLE);
imageDownload.setVisibility(View.VISIBLE);
vnc.setVisibility(View.VISIBLE);
terminal.setVisibility(View.VISIBLE);
case 2:
textView.setVisibility(View.VISIBLE);
middleText.setVisibility(View.GONE);
bottomText.setVisibility(View.GONE);
imageDownload.setVisibility(View.GONE);
vnc.setVisibility(View.GONE);
terminal.setVisibility(View.GONE);
case 3:
textView.setVisibility(View.VISIBLE);
middleText.setVisibility(View.GONE);
bottomText.setVisibility(View.GONE);
imageDownload.setVisibility(View.GONE);
vnc.setVisibility(View.GONE);
terminal.setVisibility(View.GONE);
}
return rootView;
}
}
public class SectionsPagerAdapter extends FragmentPagerAdapter {
public SectionsPagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
// getItem is called to instantiate the fragment for the given page.
// Return a PlaceholderFragment (defined as a static inner class below).
return PlaceholderFragment.newInstance(position + 1);
}
@Override
public int getCount() {
// Show 3 total pages.
return 4;
}
@Override
public CharSequence getPageTitle(int position) {
switch (position) {
case 0:
return "1";
case 1:
return "2";
case 2:
return "3";
case 3:
return "4";
}
return null;
}
}但是,这似乎不正确,例如,在上面的代码中,最后一个片段显示了所有的元素,而不是应该显示的第二个片段。
根据碎片视图的位置,修改片段视图的正确方法是什么?
发布于 2016-08-29 12:37:57
您忘了在每个开关箱后面添加中断;
switch (pageNumber) {
case 0:
textView.setVisibility(View.VISIBLE);
middleText.setVisibility(View.GONE);
bottomText.setVisibility(View.GONE);
imageDownload.setVisibility(View.GONE);
vnc.setVisibility(View.GONE);
terminal.setVisibility(View.GONE);
break;
case 1:
textView.setVisibility(View.VISIBLE);
middleText.setVisibility(View.VISIBLE);
bottomText.setVisibility(View.VISIBLE);
imageDownload.setVisibility(View.VISIBLE);
vnc.setVisibility(View.VISIBLE);
terminal.setVisibility(View.VISIBLE);
break;
case 2:
textView.setVisibility(View.VISIBLE);
middleText.setVisibility(View.GONE);
bottomText.setVisibility(View.GONE);
imageDownload.setVisibility(View.GONE);
vnc.setVisibility(View.GONE);
terminal.setVisibility(View.GONE);
break;
case 3:
textView.setVisibility(View.VISIBLE);
middleText.setVisibility(View.GONE);
bottomText.setVisibility(View.GONE);
imageDownload.setVisibility(View.GONE);
vnc.setVisibility(View.GONE);
terminal.setVisibility(View.GONE);
break;
}https://stackoverflow.com/questions/39206482
复制相似问题