1.先阐述问题我的布局是 Activity(ViewGroup)----Fragment(ViewPager)----Fragment(ViewGroup)
我想在第一个Fragment中添加多个Fragment(第二个)
adapter = new OpenFragmentAdapter(getFragmentManager(),datas);
pager.setAdapter(adapter);
它显示出来的位置完全不正确,它显示为Activity界面之上
后来将adapter中的第一个参数改为getChildFragment后显示完全正确。
总结:
在Fragment中:
1》getFragmentManager:它是获取它所依附Activity中的FragmentManger
2》getChildFragmentManager:它才是获取它自己上面的FragmentManger(百度下)
2.Gson的使用:当遇到{"flag":"0" "info":{"push1":[......],"push2":[....]} }它有可能解析出来的push1和push2位空
这时我们就要进行一定改造:
1》我们先获取出它的String,
2》利用JsonObject.getString("info")来获取字符串格式为:
{"push1":[....],"push2":[....]}
3》将里面的类改为
class HotBean{
private List<Push1Entity> push1; private List<Push2Entity> push2;
public class Push1Entity{.....}
public class Push2Entity{.....}
}
4》然后调用 new Gson().fromJson(str,HotBean.class);
总结:
Gson它只能最多解析两层 info--push1--字段 (这有了三层了,取出的结果为空。所以要进行适当的改造下)
3.在使用适配器Adapter时我们最后在getCount时使用: datas==null?0:datas.size();
4.如何在TextView在java代码中动态添加Drawable:
Drawable drawable = context.getResources().getDrawable(R.id.ic_laucher);
drawable.setBounds(0,0,drawable.getMinimumWidth(),drawable.getMinimumHeight());
textView.setCompoudDrawables(drawable,null,null,null);
5.是最坑的,到现在我是解决了当时我还是没用知道它为什么
我想在图片的下面显示二行文字。我使用的是相对布局先是图片占满,然后是文字在底部,再加一个文字在底部文字的上面然而没显示
最后是采用线性布局把这两个TextView包裹起来,然后把这个线性布局设置到顶部(OK它们都正常显示)
6.如何实现在TextView中显示不同的字体颜色?
String str = "剩余:"+bean.getNumber();
SpannableStringBuilder style=new SpannableStringBuilder(str);
//str代表要显示的全部字符串
//3代表从第几个字符开始变颜色,注意第一个字符序号是0.
//8代表变色到第几个字符(注意它不包括那个).
style.setSpan(new ForegroundColorSpan(Color.RED),3,str.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
7,如何判断ScrollView是否滑到底:
scrollView.setOnScrollChangeListener(new NestedScrollView.OnScrollChangeListener() {
@Override
public void onScrollChange(NestedScrollView v, int scrollX, int scrollY, int oldScrollX, int oldScrollY) {
View childView = v.getChildAt(0);
//项目总结
if (childView != null && childView .getMeasuredHeight() <= v.getScrollY() + v.getHeight()){
}
}
});
我想在第一个Fragment中添加多个Fragment(第二个)
adapter = new OpenFragmentAdapter(getFragmentManager(),datas);
pager.setAdapter(adapter);
它显示出来的位置完全不正确,它显示为Activity界面之上
后来将adapter中的第一个参数改为getChildFragment后显示完全正确。
总结:
在Fragment中:
1》getFragmentManager:它是获取它所依附Activity中的FragmentManger
2》getChildFragmentManager:它才是获取它自己上面的FragmentManger(百度下)
2.Gson的使用:当遇到{"flag":"0" "info":{"push1":[......],"push2":[....]} }它有可能解析出来的push1和push2位空
这时我们就要进行一定改造:
1》我们先获取出它的String,
2》利用JsonObject.getString("info")来获取字符串格式为:
{"push1":[....],"push2":[....]}
3》将里面的类改为
class HotBean{
private List<Push1Entity> push1; private List<Push2Entity> push2;
public class Push1Entity{.....}
public class Push2Entity{.....}
}
4》然后调用 new Gson().fromJson(str,HotBean.class);
总结:
Gson它只能最多解析两层 info--push1--字段 (这有了三层了,取出的结果为空。所以要进行适当的改造下)
3.在使用适配器Adapter时我们最后在getCount时使用: datas==null?0:datas.size();
4.如何在TextView在java代码中动态添加Drawable:
Drawable drawable = context.getResources().getDrawable(R.id.ic_laucher);
drawable.setBounds(0,0,drawable.getMinimumWidth(),drawable.getMinimumHeight());
textView.setCompoudDrawables(drawable,null,null,null);
5.是最坑的,到现在我是解决了当时我还是没用知道它为什么
我想在图片的下面显示二行文字。我使用的是相对布局先是图片占满,然后是文字在底部,再加一个文字在底部文字的上面然而没显示
最后是采用线性布局把这两个TextView包裹起来,然后把这个线性布局设置到顶部(OK它们都正常显示)
6.如何实现在TextView中显示不同的字体颜色?
String str = "剩余:"+bean.getNumber();
SpannableStringBuilder style=new SpannableStringBuilder(str);
//str代表要显示的全部字符串
//3代表从第几个字符开始变颜色,注意第一个字符序号是0.
//8代表变色到第几个字符(注意它不包括那个).
style.setSpan(new ForegroundColorSpan(Color.RED),3,str.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
7,如何判断ScrollView是否滑到底:
scrollView.setOnScrollChangeListener(new NestedScrollView.OnScrollChangeListener() {
@Override
public void onScrollChange(NestedScrollView v, int scrollX, int scrollY, int oldScrollX, int oldScrollY) {
View childView = v.getChildAt(0);
//项目总结
if (childView != null && childView .getMeasuredHeight() <= v.getScrollY() + v.getHeight()){
}
}
});