相信我,这不是一篇短文。。。。
基本控制
安卓的控件和控件风格都很特别。是一种内联度高的设计模式。换句话说,这是一个非常糟糕的设计。。。。
但是,这种特殊的关系是有一定规律的。让我们来看看控件的用法。
首先,我们定义一个图像按钮,如下所示:
& lt图片按钮
Android:src = " @ draw able/toolbar _ upload _ photo _ normal "
Android:layout _ gravity = " right | center _ vertical "
Android:layout _ width = " wrap _ content "
Android:layout _ height = " wrap _ content "
Android:background = " @ draw able/BTN _ weight "/& gt。
如上面的代码所示,我们定义了ImageButton并设置了它的Src地址,指向一张图片。
重点,我们来看这句话,background = " @ draw able/BTN _ weight;背景颜色指向资源。为什么说它指向一个资源?因为btn_weight不是图片,而是XML文件。。。。如下图:
那我们来看看btn_weight是什么?
& lt?xml version= "1.0 "编码= "UTF-8 "?>。
& lt选择器
xmlns:Android = " http://schemas . Android . com/apk/RES/Android " >;
& ltitem Android:state _ window _ focused = " false " Android:state _ enabled = " true " Android:draw able = " @ draw able/BTN _ weight _ normal "/& gt。
& lt项目Android:state _ enabled = " false " Android:draw able = " @ draw able/BTN _ weight _ disable "/& gt。
& lt项目Android:state _ pressed = " true " Android:draw able = " @ draw able/BTN _ weight _ press "/& gt。
& lt项目Android:state _ focused = " true " Android:draw able = " @ draw able/BTN _ weight _ press "/& gt。
& lt安卓物品:draw able = " @ draw able/BTN _ weight _ normal "/& gt。
& lt/selector>。
如上面代码所示,btn_weight设置按钮按下时和正常时的背景颜色。
没错,这个设定方法真的很费解。按键事件和背景风格混在一起,但在Android中,我们只能适应。
-
好了,现在基本控制完了,是不是觉得自己从现代城市回到了农耕社会?。。。
相信我,有了Xamarin的发展,你在农耕社会还是有犁耙的,有了AS的发展,你会发现你只能靠手挖。。。。
显示数据表格(一种控件)
首先,Android的GridView是我见过的最精彩的列表使用方式。。。
然后,我们开始学习如何使用它。
首先找到GridView控件,代码如下:
GridView my_grid = this。FindControl<。GridView>。;
然后,我们定义一个适配器,并将其分配给GridView的适配器属性。代码如下:
IListAdapter适配器= new GridAdapter;
我的网格。Adapter =适配器;//配置适配器
嗯,这里的代码看起来相当简单,但是接下来就不一样了。让我们来看看这个奇妙的适配器。
首先,让我们看看适配器代码:
公共类GridAdapter : BaseAdapter
{
私有显示度量本地显示度量;
私人充气机;
私人资源;
公共GridAdapter
{
资源=上下文。资源;
localDisplayMetrics =资源。显示度量;
充气机= LayoutInflater。from;
}
公共覆盖int Count = >;9;
公共覆盖对象GetItem
{
返回null
}
公共覆盖长GetItemId
{
返回位置;
}
公共覆盖视图获取视图
{
paramView =充气机。膨胀;
文本视图文本=参数视图。FindViewById;
开关
{
案例0:
{
文字。Text = " local
可绘制的。draw able . home _ button _ local);
画画。SetBounds;
文字。SetCompoundDrawables;
打破;
}
案例1:
{
文字。Text = " search
可绘制的。draw able . home _ button _ search);
画画。SetBounds;
文字。SetCompoundDrawables;
打破;
}
案例2:
{
文字。Text = " checkin
可绘制的。draw able . home _ button _ check in);
画画。SetBounds;
文字。SetCompoundDrawables;
打破;
}
案例3:
{
文字。Text = " promo
可绘制的。draw able . home _ button _ promo);
画画。SetBounds;
文字。SetCompoundDrawables;
打破;
}
案例4:
{
文字。Text = " tuan
可绘制的。draw able . home _ button _ Tuan);
画画。SetBounds;
文字。SetCompoundDrawables;
打破;
}
案例5:
{
文字。Text = " rank
可绘制的。draw able . home _ button _ rank);
画画。SetBounds;
文字。SetCompoundDrawables;
打破;
}
案例6:
{
文字。Text = " history
可绘制的。draw able . home _ button _ history);
画画。SetBounds;
文字。SetCompoundDrawables;
打破;
}
案例7:
{
文字。Text = " myzone
可绘制的。draw able . home _ button _ my zone);
画画。SetBounds;
文字。SetCompoundDrawables;
打破;
}
案例8:
{
文字。Text = " more
可绘制的。draw able . home _ button _ more);
画画。SetBounds;
文字。SetCompoundDrawables;
打破;
}
}
paramView。setMinimumHeight);
paramView。setMinimumWidth/3);
返回paramView
}
}
如上代码所示,适配器的构造函数接受一个参数,这个参数就是适配器所属的Activity,主要用来调用适配器中activiy的信息。
然后,我们通过LayoutInflater将xml布局文件实例化到其对应的视图对象中,以供后续使用。
然后我们重写BaseAdapter类的一些属性和方法。
重写的计数属性需要特别注意。它代表我们列表的显示编号,需要赋值。这里的例子为它定义了一个常数9。
接下来,我们将关注GetView方法。
GetView做了很多事情。作为一个C#开发人员,很难理解它是做什么的。不过,我们可以联想一下。暂时把他理解为线的导入事件,很形象。
因为,至于为什么叫GetView,我觉得大概是因为他既做了数据绑定,又做了行视图的布局,所以没有更合适的名字,所以叫他。
这也是我觉得他很精彩的原因,因为之前的Activity和layout已经把视图和数据混在一起了,然后,在控件中,我们又把数据和layout混在一起了。。。。
让我们看看它是如何混淆的,不,它是如何工作的。
首先,在该行导入的GetView中,我们找到要填充的布局XML——activity _ label _ item . XML..
paramView =充气机。膨胀;
然后,我们在这个行布局中找到控件,然后给它赋值。这里activity_label_item.xml很简单,只有一个Textview,也就是说我们这里需要做的就是给他赋值。
然后,我们通过paramInt判断当前行。一般情况下,在这里找到Activity数据集,找到该集对应的行赋值。
我们在Demo中做了特殊处理,在线视图中添加了图片。
运行结果如下:
如图所示,列表已经创建。
下面我们将点击事件添加到列表中;代码如下:
我的网格。ItemClick += = >
{
这个。ShowToast;
};
代码非常简洁,实现效果如下:
如上图所示,我们成功实现了click事件。
至此,控件的基本应用完成,下一篇文章将继续讲解Android软件的部署。
-
代码已经上传到Github。欢迎下载。
Github地址:https://github.com/kiba518/KibaXamarin_Android
原地址:https://www.cnblogs.com/kiba/p/10395681.html
1.《gridview控件 C#-Xamarin的Android项目开发——控件应用》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。
2.《gridview控件 C#-Xamarin的Android项目开发——控件应用》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。
3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/junshi/1691197.html