现在,我想使用Parse添加服务器拉请求,将列表中的数据添加到适配器,并在用户查看页面后填充recyclerview,这样
1)我是否应该添加setUserVisisbleHint中的所有代码,并只添加0.5秒延迟,以便在调用setContentView后执行它,以确保不出现空指针异常错误或
2)是否有更好的方法/其他功能可以实现相同的功能?
public class NewsFeed extends Fragment {
LinearLayoutManager mLayoutManager;
boolean _areLecturesLoaded=false;
View v;
ProgressBar bar;
public NewsFeed() {
// Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container,
@Nullable Bundle savedInstanceState) {
// Inflate the layout for this fragment
v=inflater.inflate(R.layout.fragment_news_feed, container, false);
RecyclerView mRecyclerView = (RecyclerView)v.findViewById(R.id.recycler_view);
mRecyclerView.setHasFixedSize(true);
mLayoutManager = new LinearLayoutManager(v.getContext());
mRecyclerView.setLayoutManager(mLayoutManager);
MyStickyAdapter mAdapter = new MyStickyAdapter(v.getContext());
mRecyclerView.setAdapter(mAdapter);
// mRecyclerView.addItemDecoration(new StickyRecyclerHeadersDecoration(mAdapter));
return v;
}
@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
super.setUserVisibleHint(isVisibleToUser);
if (isVisibleToUser && !_areLecturesLoaded ) {
_areLecturesLoaded = true;
v.findViewById(R.id.asd).setVisibility(View.GONE);
}
}
}//Closes Fragment
我强烈建议避免增加延迟,特别是在主线程上运行时。若要避免NPE,请尝试在膨胀视图后将findViewById(r.id.asd)移动到onCreateView方法中:
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container,
@Nullable Bundle savedInstanceState) {
// Inflate the layout for this fragment
v=inflater.inflate(R.layout.fragment_news_feed, container, false);
v.findViewById(R.id.asd).setVisibility(View.GONE);
这是假设r.id.asd位于r.layout.fragment_news_feed中
这篇文章还可以提供一些见解:在片段中的onCreateView之前调用setUserVisibleHint
问题内容: 我有一个带有gridview的适配器,可以用作活动。我正在尝试将其放在Fragment中并进行转换,但是它不起作用。当我在Activity中包含IconFragmentSystem时,当我尝试打开Activity时会强制关闭。 我知道活动有效,因为我可以使用其他片段,并且一切都很好,所以我知道我的问题出在此文件中。 我尝试了不同的方法来实现此目的,但都失败了,我真的可以使用帮助将我指向
我试图在一个片段下创建一个带有Intent的setOnClickListener,但当我试图用以下方法实例化Intent对象时,我得到了以下错误: 错误消息:无法使用提供的参数调用下列函数。(上下文!,类<*>!)在Android.Content.Intent(String!,URI!)中定义在Android.Content.Intent中定义 Logcat错误:
根据谷歌的文档: 现在可以在片段中嵌入片段。这对于各种情况都很有用,在这些情况下,您需要将动态和可重用的UI组件放置到本身是动态和可重用的UI组件中。例如,如果使用ViewPager创建左右滑动并占用大部分屏幕空间的片段,现在可以将片段插入每个片段页面。要嵌套片段,只需对要添加片段的片段调用getChildFragmentManager()。这将返回一个FragmentManager,您可以像通常
在我的应用程序中,我有标签的活动(让我们说10个标签)。每个选项卡页都包含和(此ListView中显示的数据是从我的服务器动态加载的)。我使用来显示这些页面。我不想将所有保存在内存中,所以我决定使用(我的适配器类扩展了这些类)。 > 假设选择了第三个选项卡。然后,当我转到第一个选项卡时,应该从头开始为该选项卡创建(这很好,这就是的工作方式),但不恢复该片段以前的状态(例如,不应该滚动到上次访问该时
但问题是espresso看起来是所有的页面,而不仅仅是当前页面,我得到以下错误: Android.support.test.espresso.ambiguousViewMatcherException:“with id:eu.airpatrol.android:id/container_weather”匹配层次结构中的多个视图...
我有一个带选项卡的ActionBar/ViewPager布局,有三个选项卡,比如a、B和C。在选项卡C选项卡(片段)中,我添加了另一个片段,比如片段D。 我修改了DFragment的onResume添加按钮中的actionbar: 现在在DFragment中,当我按下hardware(phone)Back按钮时,我返回到选中CFragment的原始选项卡(ABC)布局。如何使用actionbar