如何自定义一个View,并动态设置style?
来源:互联网 发布:淘宝网店客服兼职 编辑:程序博客网 时间:2024/06/16 21:15
定义一个TextView的style,常用的方法是在xml文件中实现,但有时候我们需要动态的在代码中自定义个style的View,进行动态的添加或删除等控制,这时候需要用到inflater方法。
TextView的xml,R.layout.empty_text_view:
<?xml version="1.0" encoding="utf-8"?><TextView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/empty_text_view" android:text="@string/tips_no_relative_order_list" style="@style/emptyView" android:visibility="visible"/>
stytles.xml文件中的style定义:
<style name="emptyView"> <item name="android:textSize">@dimen/default_text_size_large</item> <item name="android:background">@drawable/tips_for_empty_content_bg</item> <item name="android:visibility">gone</item> <item name="android:paddingTop">20dp</item> <item name="android:paddingBottom">20dp</item> <item name="android:paddingLeft">50dp</item> <item name="android:paddingRight">50dp</item> <item name="android:layout_centerInParent">true</item> <item name="android:layout_gravity">center</item> <item name="android:layout_width">wrap_content</item> <item name="android:layout_height">wrap_content</item> </style>
代码中动态定义TextView:
***TextView emptyTextView = (TextView) inflater.inflate(R.layout.empty_text_view, null);***
需要注意的是它与fragment中使用的区别,如自定义一个fragment时,需要实现onCreateView方法,以定义fragment对应的布局xml:
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // Inflate the layout for this fragment View rootView = ***inflater.inflate(R.layout.fragment_trade_record, container, false);*** }
而它与listView的adapter的getView方法中定义xml文件的方法相同:
@Override public View getView(int i, View view, ViewGroup viewgroup) { titleView = null; iconView=null; if(view == null){ view = ***LayoutInflater.from(context).inflate(R.layout.trade_list_item_info, null);*** } titleView=(TextView)view.findViewById(R.id.TradeItemTitle); titleView.setText(tradeTitleAndIconList.get(i).titleName); iconView=(TextView)view.findViewById(R.id.TradeItemIcon); if (tradeTitleAndIconList.get(i).selected) { titleView.setTextColor(Color.RED); iconView.setBackgroundResource(tradeTitleAndIconList.get(i).titleIconRed); } else { titleView.setTextColor(Color.WHITE); iconView.setBackgroundResource(tradeTitleAndIconList.get(i).titleIcon); } return view; }
0 1
- 如何自定义一个View,并动态设置style?
- Android自定义View中代码设置style
- 动态添加button,并设置其style
- 如何实现动态添加view并在其设置方法点击动态删掉
- Android 动态添加View并设置padding
- 动态改变view的style
- 动态添加未知个View,并动态设置点击事件
- android如何自定义style
- Android如何自定义一个View(一)
- 请教如何自定义一个这样的View
- 请教如何自定义一个这样的View
- 【Android】如何在自定义View中设置自定义的属性
- javascript 动态设置样式style
- Android 在自定义view中动态设置布局规则
- Android - 动态设置自定义View的id - setId
- 自定义View,绘制一个圆形,并可以单击拖动
- 如何设定视频图像窗口大小并添加自定义View
- 如何设定视频图像窗口大小并添加自定义View
- Unix环境高级编程概况
- create函数用法
- opencv学习(十)(opencv3.0.0+VS2012+win7)打开摄像头并且进行人脸识别的例子
- 2016年阿里C/C++开发笔试程序题三
- php get_object_vars()函数
- 如何自定义一个View,并动态设置style?
- UNIX环境高级编程(5):文件I/O(1)
- 架构必备:Rate limiting 的作用和常见方式
- noip2008初赛-字符串替换
- 最小生成树(Prim算法和Kruskal算法)—理解与论证
- EditText,TextView(富文件),Button,RadioButton
- QPBOC快速借贷记流程(2)
- 关于遣散军队和裁剪公务员
- listview重载问题的解决思路