获得 Android 系统 Widget 控件的方法

最近在工作中需要改变 Android 系统的一些控件的属性,一开始不知从何下手,经过一段时间的 google 得到了答案,如果我们知道 Widget 的 ID,那么就可以得到它了。

获得 System Widget ID

应用程序自身创建的 View 的 ID 的结构是:R.id.XXX

而由系统自身创建的 View 的 ID 的结构是:com.android.internal.R.id.XXX

可以通过 Android 的 Hierarchyviewer Tools 来获得 System Widget 的 ID

例如,ActionBar相关ID如下:

action_bar_container -- ActionBar 的 parent view 的 ID
action_bar_title     -- ActionBar 的 title 的 ID (它是一个 TextView)
action_bar_subtitle  -- ActionBar 的 subtitle 的 ID

通过 findViewById 获得 View

首先,需要获得当前页的 root View – getActivity().getWindow().getDecorView()

然后,findViewById , ( that is it ).

1
2
3
4
5
View view = getActivity().getWindow().getDecorView()
.findViewById ( com.android.internal.R.id.action_bar_title );
if ( null != view ) {
TextView action_bar_title = ( TextView ) view;
}

推荐文章:

Android xml 资源文件中 @、@android:、@*、?的含义和区别

END
Johnny Shieh wechat
我的公众号,不只有技术,还有咖啡和彩蛋!