如何自定义一个View,并动态设置style?
2015-08-23 17:15
344 查看
定义一个TextView的style,常用的方法是在xml文件中实现,但有时候我们需要动态的在代码中自定义个style的View,进行动态的添加或删除等控制,这时候需要用到inflater方法。
TextView的xml,R.layout.empty_text_view:
stytles.xml文件中的style定义:
代码中动态定义TextView:
需要注意的是它与fragment中使用的区别,如自定义一个fragment时,需要实现onCreateView方法,以定义fragment对应的布局xml:
而它与listView的adapter的getView方法中定义xml文件的方法相同:
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; }
相关文章推荐
- 2016年阿里C/C++开发笔试程序题三
- MD5加密C#
- JavaScript——关于画布元素canvas的使用
- Unix环境高级编程概况
- Linux 基础二之基础命令及其参与选项
- Android UI之TextView实现图文混合效果
- 逆序数还原(FZU)
- eclipse导入jquery文件出错
- 北大OJ1001
- 逆序数还原(FZU)
- Java Socket 参数详解
- 自定义Gradle插件之"Hello World"
- JAVA面向对象与内存分析
- discuz 研究(整理)
- mysql版sql助记
- android NDK开发库相关的知识
- Android开发应用汇总
- Visual Studio2010与OpenGL基础绘制
- Java Web Service
- 手机网站宽度自动适应手机屏幕