0
其實我使用Fragment與FragmentPagerAdapter,但我有問題,當我試圖再次訪問片段中的視圖爲null。 pageNum也是null。我嘗試了很多方法來解決它,但它沒有工作。如何在片段中的onCreateView之後再次訪問視圖?
FirstFragment.java
public class FirstFragment extends Fragment{
private int pageNum;
private TextView titleTxt;
private LinearLayout topPan;
public static FirstFragment newInstance(int page) {
FirstFragment fragment = new FirstFragment();
Bundle args = new Bundle();
args.putInt("page", page);
fragment.setArguments(args);
return fragment;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
pageNum = getArguments().getInt("page", 0);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.workflow_item_layout, container, false);
titleTxt = (TextView) view.findViewById(R.id.title);
topPan = (FrameLayout) view.findViewById(R.id.top_pan);
}
public void setTopPanVisible(boolean isVisible) {
topPan.setVisibility(isVisible);
}
pageChangeListener碼
private ViewPager.OnPageChangeListener pageChangeListener = new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
}
@Override
public void onPageScrollStateChanged(int state) {
final int position = pager.getCurrentItem();
if (state == ViewPager.SCROLL_STATE_IDLE) {
final FirstFragment fragment = (FirstFragment) adapter.getItem(position);
fragment.setTopPanVisible(true);
凸版爲null時,我稱爲pageChangeListener 'setTopPanVisible'。 Views如何保持活力以獲得價值?
我想在做一個片段後改變topPan的可見性,所以這就是爲什麼我需要在onCreateView調用後調用setTopPanVisible。 – kimkevin 2014-11-24 05:45:03
你面臨哪個問題。 #1或#2? – 2014-11-24 05:50:45
確切地說#1,我現在正在尋找並嘗試。 – kimkevin 2014-11-24 05:51:49