- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 PagerSlidingTab
中有几个 fragment 。因为一次性加载所有 fragment ,它没有良好的性能和质量(有时加载正确,有时转到 Volley onResponseError
)。
在 fragment 中,我加载 json 数据并使用 Json 数据填充 RecyclerView
。
One of my fragment :
public class Fragment_four extends Fragment {
private boolean isFragmentLoaded = false;
private static final String FIRST_URL = "http://myapiservice.com/api/3";
private ProgressBar loadingProgressBar;
private ArrayList<ModelDars> darsha = new ArrayList<ModelDars>();
private RecyclerView reyclerCharDab;
private AdapterRecyclerDars adapterRecyclerDars;
private String after_url;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
// Inflate the layout for this fragment
View view = inflater.inflate(R.layout.fragment_four, container, false);
//======================================
loadingProgressBar = (ProgressBar) view.findViewById(R.id.prg_loading_frg_four);
//recyclerview init
reyclerCharDab = (RecyclerView) view.findViewById(R.id.recycler_frg_chaharom_dab);
reyclerCharDab.setHasFixedSize(true);
GridLayoutManager gridLayoutManager = new GridLayoutManager(getActivity(), 3);
reyclerCharDab.setLayoutManager(gridLayoutManager);
adapterRecyclerDars = new AdapterRecyclerDars(darsha, getActivity(), FIRST_URL, getActivity());
reyclerCharDab.setAdapter(adapterRecyclerDars);
if (helpers.isOnline(getActivity())) {
//creating volley object request
JsonObjectRequest request = new JsonObjectRequest(FIRST_URL, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
if (response != null || response.length() > 0) {
try {
JSONArray data = response.getJSONArray("data");
for (int i = 0; i < data.length(); i++) {
JSONObject currentData = data.getJSONObject(i);
ModelDars newModelDars = new ModelDars();
newModelDars.setDarsId(currentData.getString("id"));
newModelDars.setDarsTitle(currentData.getString("title"));
newModelDars.setDarsPoster(currentData.getString("poster"));
newModelDars.setDarsVisitCnt(currentData.getString("visitcnt"));
newModelDars.setDarsDate(currentData.getString("date"));
newModelDars.setDarsCatId(currentData.getString("cat_id"));
newModelDars.setDarsCatName(currentData.getString("cat_name"));
darsha.add(newModelDars);
}
after_url = response.getString("pagination");
} catch (JSONException e) {
e.printStackTrace();
}
//notify adapter about data changed
adapterRecyclerDars.notifyDataSetChanged();
loadingProgressBar.setVisibility(View.GONE);
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
loadingProgressBar.setVisibility(View.GONE);
Toast.makeText(getActivity(), "failed to fetch data from internet ", Toast.LENGTH_SHORT).show();
}
});
AppController.getInstance().addToRequestQueue(request);
// LOAD MORE FUNCTION =====================================================================
reyclerCharDab.addOnScrollListener(new EndlessRecyclerViewScrollListener(gridLayoutManager) {
@Override
public void onLoadMore(int page, int totalItemsCount) {
if (after_url == "null") {
} else {
JsonObjectRequest request = new JsonObjectRequest(after_url, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
if (response != null || response.length() > 0) {
try {
JSONArray data = response.getJSONArray("data");
for (int i = 0; i < data.length(); i++) {
JSONObject currentData = data.getJSONObject(i);
ModelDars newModelDars = new ModelDars();
newModelDars.setDarsId(currentData.getString("id"));
newModelDars.setDarsTitle(currentData.getString("title"));
newModelDars.setDarsPoster(currentData.getString("poster"));
newModelDars.setDarsVisitCnt(currentData.getString("visitcnt"));
newModelDars.setDarsDate(currentData.getString("date"));
newModelDars.setDarsCatId(currentData.getString("cat_id"));
newModelDars.setDarsCatName(currentData.getString("cat_name"));
darsha.add(newModelDars);
}
after_url = response.getString("pagination");
} catch (JSONException e) {
e.printStackTrace();
}
//notify adapter about data changed
adapterRecyclerDars.notifyDataSetChanged();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
}
});
AppController.getInstance().addToRequestQueue(request);
}
}
});
} else {
Toast.makeText(getActivity(), "You dont have internet !", Toast.LENGTH_SHORT).show();
loadingProgressBar.setVisibility(View.GONE);
}
return view;
}
}
And This is the view pager adapter :
public class MainActivityPagerAdapter extends FragmentStatePagerAdapter {
//============================================ Constructor
public MainActivityPagerAdapter(FragmentManager fm) {
super(fm);
}
//============================================ GetItem Method ()
@Override
public Fragment getItem(int position) {
Fragment frag = null;
switch (position) {
case 0:
frag = new Fragment_one();
break;
case 1:
frag = new Fragment_two();
break;
case 2:
frag = new Fragment_three();
break;
case 3:
frag = new Fragment_four();
break;
}
return frag;
}
//============================================= GetCount Method ()
@Override
public int getCount() {
return 4;
}
//============================================= GetPageTitle
@Override
public CharSequence getPageTitle(int position) {
String title = "";
switch (position) {
case 0:
title = "one";
break;
case 1:
title = "two";
break;
case 2:
title = "three";
break;
case 3:
title = "four";
break;
}
return title;
}
}
最佳答案
根据您的评论,这里有一个只实例化 fragment 一次的 fragment ,并且只返回要显示的 fragment :
public class MainActivityPagerAdapter extends FragmentStatePagerAdapter {
private Fragment_one fragment_one;
private Fragment_two fragment_two;
private Fragment_three fragment_three;
private Fragment_four fragment_four;
//============================================ Constructor
public MainActivityPagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.your_layout);
fragment_one = new Fragment_one();
fragment_two = new Fragment_two();
fragment_three = new Fragment_three();
fragment_four = new Fragment_four();
}
//============================================ GetItem Method ()
@Override
public Fragment getItem(int position) {
switch (position) {
case 0:
return (fragment_one);
case 1:
return (fragment_two);
case 2:
return (fragment_three);
case 3:
default:
return (fragment_four);
}
}
}
关于android - 避免在 Pager Sliding Tab 中加载所有 fragment ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37611261/
我嵌套了 ul li 列表 > dentry > 隔离 Material 活髓剂 eclipse 刻剂 > dentry 矫正 > dentry 药品 > 口服 使用下面的 html De
我查看了一些关于 fragment 之间的动画交易的教程。我已经将这种方法用于动画并且效果很好: fragmentTransaction.setCustomAnimations(android.R.a
我有面板。我希望面板主体在单击面板标题的加号图标时向下滑动和向上滑动。 我不会使用 jquery。我必须使用纯 CSS3 来完成。 我正在使用 Angular 2 来处理条件。 .slide_down
我正在使用周期 2 ( http://jquery.malsup.com/cycle2/ ) 创建轮播,但我无法弄清楚如何通过“幻灯片编号”访问幻灯片。 我可以使用cycle.API循环遍历幻灯片数组
我是记者和官员软件包的狂热用户,目前正试图过渡到官员的 Powerpoint 工作流程。我正在使用包含幻灯片编号占位符的幻灯片模板。 使用 Reporters 时,我可以使用 doc % add_
已关闭。此问题不符合Stack Overflow guidelines 。目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a software
如何仅在第一张幻灯片上隐藏 ion slide pager?我的代码是这样的: ABC BCD 所以我有 2 张幻灯片,但只有一个标签。 谢谢 最佳答案 你可以使用
(对不起我的英语) 我在使用 Google Slides API 时遇到问题。使用 Google Slides API 创建新演示文稿时如何选择主题? 谢谢。 1.创建演示文稿 functio
有没有办法通过 rest API 更改 Google Slides 表格的表格单元格填充属性? 更新表格单元格属性似乎没有任何单元格填充属性 最佳答案 虽然不完全相同,但可以通过设置单元格文本段落缩进
我尝试让 ion-slide-box 从某个索引开始。 幻灯片 Controller : $ionicSlideBoxDelegate.slide(index); 滑动框温度: ... 这行不通。可能
我有一个看起来像这样的 slider : $('#slider').cycle({ fx: 'scrollHorz', speed: 1250, timeout: 5000,
我一直在剖析 firebug 中的事件和 ui 对象,但它似乎没有任何我可以使用的东西。我错过了什么吗?我想我可以跟踪值的变化,但这似乎是一种困惑。 $(".selector").slider({
我正在构建一个无限的 jQuery 轮播。无限是它在向用户显示最终幻灯片后立即显示第一张幻灯片。为此,我在完成后回调函数中做了这个小调整 $('#slide li:last').after('#sli
我在顶部菜单(ListItems)的开头插入一个菜单选项并使用 $('#newMenuItem').show('slide'); 成功了。但是,我不喜欢它从左上角滑入的方式,所以我将其更改为 $('#
我正在尝试创建新的 4:3 演示文稿,而不是 16:9。 我阅读了此引用文献并编写了一些 ruby 代码,但它不起作用。新演示文稿的高度与我指定的高度不同。 Method: presentatio
我有一个数组,我正在尝试使用其中的信息来创建 Google 幻灯片演示文稿。我需要一些帮助,如果可能的话,还需要一些我可以阅读的 Material ,以便更好地理解这些问题的可能解决方案。 数组如下:
我有一个没有指示器按钮的 Twitter Bootstrap 3 旋转木马。我没有使用那些指示器按钮,而是使用选项卡(我在我的 CSS 中相应地设置了样式)。这样,用户就知道每张幻灯片是什么(基于选项
在我的页面上,我有一个用于图像的 ion-slide-box。由于在我的应用程序中用户将能够嵌入视频,因此我还应该将带有视频的 iframe 添加到同一个 slider 。这就是我的代码现在的样子:
我正在开发全屏 Bootstrap 4 轮播。幻灯片不包含图像,而是包含视频 和标题。 我的目的是将幻灯片的标题放在事件幻灯片的左侧和右侧,在 slider 控件之上,给人以标题被用作控件的印象。所需
这是我遇到问题的特定 View 的 Controller 。 .controller('MenuCtrl', ['$rootScope','$scope','$state','$timeout','$
我是一名优秀的程序员,十分优秀!