在这里,我们将给大家分享关于ExtjsGridview显示无数据的知识,让您更了解gridview不显示数据的本质,同时也会涉及到如何更有效地AndroidGlide点击项目Gridview显示图像全
在这里,我们将给大家分享关于Extjs Gridview显示无数据的知识,让您更了解gridview不显示数据的本质,同时也会涉及到如何更有效地Android Glide点击项目Gridview显示图像全屏、Android ScrollView嵌套GridView导致GridView只显示一行item、android – GridView中的Facebook原生广告:MediaView显示灰色矩形、Android中ScrollView嵌套GridView显示不全解决方法的内容。
本文目录一览:- Extjs Gridview显示无数据(gridview不显示数据)
- Android Glide点击项目Gridview显示图像全屏
- Android ScrollView嵌套GridView导致GridView只显示一行item
- android – GridView中的Facebook原生广告:MediaView显示灰色矩形
- Android中ScrollView嵌套GridView显示不全解决方法
Extjs Gridview显示无数据(gridview不显示数据)
我正在尝试使用json在extjs中创建一个gridview。由于某种原因,我的gridview不显示任何数据。我试图用Firebug调试它。我可以在“响应”部分中看到结果。这就是我在“响应”中的内容。
{“ ContentEncoding”:null,“ ContentType”:null,“ Data”:“ {\ r \ n \” myTable
\“:[\ r \ n {\ r \ n \” Q1 \“:\” 1 \“ ,\ r \ n \“ Q2 \”:\“ 1 \”,\ r \ n \“
Q3 \”:\“ 1 \”,\ r \ n \“ Q4 \”:\“ 1 \”,\ r \ n \“改进\”:\“ \”,\ r \ n
\“评论\”:\“ 1 \” \ r \ n},\ r \ n {\ r \ n \“ Q1 \”: \“ 1 \”,\ r \ n \“ Q2
\”:\“ 2 \”,\ r \ n \“ Q3 \”:\“ 3 \”,\ r \ n \“ Q4 \”:\“ 4 \“,\ r \ n
\”改进\“:\” Iphone5 \“,\ r \ n \”评论\“:\” Iphone14 \“ \ r \ n},\ r \ n {\ r \ n
\“ Q1 \”:\“ 1 \”,\ r \ n \“ Q2 \”:\“ 1 \”,\ r \ n \“ Q3 \”:\“3 \“,\ r \ n \”
Q4 \“:\” 3 \“,\ r \ n \”改进\“:\”这是Comment1-3 \“,\ r \ n \” Comments \“:
\“这是Comment2-3 \” \ r \ n} \ r \ n] \ r \ n}“,” JsonRequestBehavior“:0}
更新 实际上我现在在Json中看到了这个,但是我的gridview仍然是空的。
请单击此处查看我的JSON。
/GridViewApp.js
Ext.define(''GridViewApp.view.GridViewApp'', {alias: ''widget.gridviewapp'',width: 800,title: ''My Grid Panel'',grid: null,store: null,layout: { type: ''anchor''},constructor: function () { this.callParent(arguments); var store = Ext.create(''Ext.data.Store'', { storeId: ''myData'', scope: this, fields: [ { name: ''Q1'', type: ''int'' }, { name: ''Q2'', type: ''int'' }, { name: ''Q3'', type: ''int'' }, { name: ''Q4'', type: ''int'' }, { name: ''Q5'', type: ''int'' }, { name: ''Improvements'', type: ''string'' }, { name: ''Comments'', type: ''string'' } ], sorters: [ { //property: ''myData'', direct: ''ASC'' } ], proxy: { type: ''ajax'', scope: this, url: ''GridView/writeRecord'', reader: { type: ''json'', root: ''myTable'', idProperty: ''ID'' } } }); store.load(); this.grid = Ext.create(''Ext.grid.Panel'', { title: ''GridView App'', store: this.store, columns: [ {header: ''Q1'', width: 100, sortable: true, dataIndex: ''Q1'' }, { header: ''Q2'', width: 100, sortable: true, dataIndex: ''Q2'' }, { header: ''Q3'', width: 100, sortable: true, dataIndex: ''Q3'' }, { header: ''Q4'', width: 100, sortable: true, dataIndex: ''Q4'' }, { header: ''Improvements'', width: 200, sortable: true, dataIndex: ''Improvements'' }, { header: ''Comments'', width: 200, sortable: true, dataIndex: ''Comments'' } ], stripeRows: true, width: 800, renderTo: Ext.getBody() }); this.add(this.grid);}});
和/GridViewController.cs
namespace GridViewApp.Controllers{public class GridViewController : Controller{ public ActionResult Index() { return View(); } public JsonResult writeRecord() { SqlConnection conn = DBTools.GetDBConnection("ApplicationServices2"); string sqlquery = "SELECT Q1, Q2, Q3, Q4, Improvements, Comments FROM myTable"; SqlDataAdapter cmd = new SqlDataAdapter(sqlquery, conn); DataSet myData = new DataSet(); cmd.Fill(myData, "myTable"); conn.Open(); conn.Close(); string myData1 = JsonConvert.SerializeObject(myData, Formatting.Indented, new JsonSerializerSettings { ReferenceLoopHandling = ReferenceLoopHandling.Ignore }); return Json(new { data = myData1 }, JsonRequestBehavior.AllowGet); }}}
任何形式的输入都会有很大的帮助…谢谢
答案1
小编典典返回一个字符串是很合理的逻辑。
您将json.net序列化为一个字符串。然后,使用Json()序列化该字符串。您应该只使用json.net序列化。
public string writeRecord(){ SqlConnection conn = DBTools.GetDBConnection("ApplicationServices2"); string sqlquery = "SELECT Q1, Q2, Q3, Q4, Improvements, Comments FROM myTable"; SqlDataAdapter cmd = new SqlDataAdapter(sqlquery, conn); DataSet myData = new DataSet(); cmd.Fill(myData, "myTable"); conn.Open(); conn.Close(); return myData1 = JsonConvert.SerializeObject(myData, Formatting.Indented, new JsonSerializerSettings { ReferenceLoopHandling = ReferenceLoopHandling.Ignore });}
Android Glide点击项目Gridview显示图像全屏
>将图像文件名保存在数据库中并再次调用链接以使用Glide下载完整大小的图像?
>或者尝试将图像放入缓存中,但我不知道该怎么做.
你可以帮帮我吗 ?
解决方法
在您的适配器上:
Glide.with(context) .load("photo_url") .diskCacheStrategy(diskCacheStrategy.ALL) //use this to cache .centerCrop() .crossFade() .into(yourImageView);
在你的另一个活动:
Glide.with(AnotherActivity.this) .load("photo_url") .diskCacheStrategy(diskCacheStrategy.ALL) //use this to cache .crossFade() .into(yourImageView);
使用.diskCacheStrategy(diskCacheStrategy.ALL)来缓存&不要忘记使图像缩放相同.它会工作.
Android ScrollView嵌套GridView导致GridView只显示一行item
Android ScrollView嵌套GridView导致GridView只显示一行item
Android ScrollView在嵌套GridView时候,会导致一个问题发生:GridView只显示一行。比如,在一个大的根ScrollView里面套一个根、大的垂直线性布局,此线性布局里面有若干子View,GridView只是其中之一,那么当这个大xml写成的布局在初始化加载后,GridView只显示一行,这种情况是因为在Android的体系设计中,由于ScrollView和GridView本身都是滚动View导致互相冲突引起。
在上述开发情景中,如果打算完全展开GridView,其中一个解决方案就是继承GridView加以改造重写GridView,然后使用这个重写的这个GridView:
package zhangphil.sample.view;
import android.content.Context;
import android.util.AttributeSet;
import android.view.ViewGroup;
import android.widget.GridView;
/**
* Created by Phil on 2016/8/18.
*/
public class ExpandableGridView extends GridView {
boolean expanded = true;
public boolean isExpanded() {
return expanded;
}
public ExpandableGridView(Context context) {
super(context);
}
public ExpandableGridView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public ExpandableGridView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
@Override
public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
if (isExpanded()) {
int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST);
super.onMeasure(widthMeasureSpec, expandSpec);
ViewGroup.LayoutParams params = getLayoutParams();
params.height = getMeasuredHeight();
} else {
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
}
}
public void setExpanded(boolean expanded) {
this.expanded = expanded;
}
}
在这个重写改造后的GridView里面增加了判断是否完全伸展开的状态值,可以set是否完全伸展。
如果expanded为true,那么初始化加载后就完全展开这个GridView的所有子item;
如果expanded为false,那么就退化成Android原生的GridView只显示一行。
根据自己项目的实际开发场景设置expanded的初始值为true或false,通常在开发中是希望GrdiView完全展开的,那就直接用我写好的代码就可以了。
不仅ScrollView在嵌套GridView时候会引起GridView不能展开只显示一行,实际上当ListView与GridView嵌套时候,也会引起这个问题,解决方案之一还是用我的这个重写后的GridView而非Android系统原生的GridView。
附录:
1,《Android GridView子元素item按击交互设计:背景颜色改变》链接:http://blog.csdn.net/zhangphil/article/details/46048583
android – GridView中的Facebook原生广告:MediaView显示灰色矩形
我将Facebook原生广告整合到GridView中.目前,我展示了测试广告.除播放视频的播放器外,它的工作正常.
如果用户不与GridView交互,MediaView播放视频就好了.
滚动GridView时,当广告重新出现在屏幕上时,视频会暂停并恢复.
向上和向下滚动网格几次后,MediaView不再显示视频,只显示一个灰色矩形.
出于好奇,当MediaView为灰色时,我试图在我的设备上运行Ui Automatic Viewer.我注意到一些有趣但我无法理解的东西.
在View层次结构中,我可以看到带有一些子FrameLayout的GridView(适配器给出的Views的容器).这包括原生广告和其他观看次数.
但是当MediaView为灰色时,其FrameLayout不会出现在View层次结构中!但它在屏幕上呈现得很好!
我对所见所闻感到非常困惑.
此外,当我将这些广告集成到RecyclerView中时,我没有遇到这个问题(或者至少没有注意到它).
我们来谈谈代码吧.我有一个引用指向Facebook原生广告视图.
建议欢迎:)
以下是为GridView提供视图的适配器的代码:
public class AdapterGridgallery extends BaseAdapter implements AdListener {
private static int POSITION_AD = 4;
private Listgallery;
View facebookAdView;
private NativeAd facebookNativeAd;
private boolean nativeAdSet = false;
public AdapterGridgallery(Fragmentgallery fragment,int height) {
heightViews = height;
fragmentgallery = fragment;
facebookNativeAd = new NativeAd(fragment.getContext(),"my_tag");
facebookNativeAd.setAdListener(this);
facebookNativeAd.loadAd();
}
public void updateData(Listarams = (AbsListView.LayoutParams) facebookAdView.getLayoutParams();
params.height = heightViews;
params.width = AbsListView.LayoutParams.MATCH_PARENT;
facebookAdView.setLayoutParams(params);
}
viewQuizz = facebookAdView;
viewQuizz.setTag(0);
if (facebookNativeAd.isAdLoaded()) {
if (!nativeAdSet) {
Log.d("NativeAdList","update views resources");
nativeAdSet = true;
ImageView nativeAdIcon = (ImageView) facebookAdView.findViewById(R.id.native_ad_icon);
TextView nativeAdTitle = (TextView) facebookAdView.findViewById(R.id.native_ad_title);
TextView nativeAdBody = (TextView) facebookAdView.findViewById(R.id.native_ad_body);
MediaView nativeAdMedia = (MediaView) facebookAdView.findViewById(R.id.native_ad_media);
TextView nativeAdSocialContext = (TextView) facebookAdView.findViewById(R.id.native_ad_social_context);
Button nativeAdCallToAction = (Button) facebookAdView.findViewById(R.id.native_ad_call_to_action);
nativeAdSocialContext.setText(facebookNativeAd.getAdSocialContext());
nativeAdCallToAction.setText(facebookNativeAd.getAdCallToAction());
nativeAdTitle.setText(facebookNativeAd.getAdTitle());
nativeAdBody.setText(facebookNativeAd.getAdBody());
// Downloading and setting the ad icon.
NativeAd.Image adIcon = facebookNativeAd.getAdIcon();
NativeAd.downloadAnddisplayImage(adIcon,nativeAdIcon);
// Download and setting the cover image.
nativeAdMedia.setNativeAd(facebookNativeAd);
nativeAdMedia.setAutoplay(true);
facebookNativeAd.registerViewForInteraction(facebookAdView);
nativeAdCallToAction.setVisibility(View.VISIBLE);
} else {
Log.d("NativeAdList","views resources already set");
}
} else {
Log.d("NativeAdList","nativeAdCallToAction is set invisible");
nativeAdCallToAction.setVisibility(View.INVISIBLE);
}
break;
case 1:
view = new CustomView();
}
return view;
}
@Override
public void onError(Ad ad,AdError adError) {
}
@Override
public void onAdLoaded(Ad ad) {
notifyDataSetChanged();
}
@Override
public void onAdClicked(Ad ad) {
}
}
这是Ui Automator Viewer的截图.
when I integrated these ads in a RecyclerView,I didn’t have this
problem (or at least didn’t notice it).
我认为回收站视图对您来说非常合适.然后,不要尝试在gridview中重做同样的事情,只需使用LayoutManager将Recycler视图转换为grid or list.
Android中ScrollView嵌套GridView显示不全解决方法
Android中ScrollView嵌套GridView显示不全解决方法
由于ScrollView和GridView这两款控件都自带滚动条,一起使用GridView会显示不全
解决方法:自定义gridview
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
今天关于Extjs Gridview显示无数据和gridview不显示数据的分享就到这里,希望大家有所收获,若想了解更多关于Android Glide点击项目Gridview显示图像全屏、Android ScrollView嵌套GridView导致GridView只显示一行item、android – GridView中的Facebook原生广告:MediaView显示灰色矩形、Android中ScrollView嵌套GridView显示不全解决方法等相关知识,可以在本站进行查询。
本文标签: