-
2017-04-11 16:30:16
getWindow().getDecorView().findViewById(android.R.id.content)
private static View getRootView(Activity context)
{
return ((ViewGroup)context.findViewById(android.R.id.content)).getChildAt(0);
}
更多相关内容 -
Android中通过view方式获取当前Activity的屏幕截图实现方法
2021-01-05 09:18:56此方法是通过view的方式获取当前activity的屏幕截图,并不是framebuffer的方式,所以有一定的局限性。但是这种方法相对简单,容易理解。 首先通过下面的函数获取Bitmap格式的屏幕截图: 代码如下: public Bitmap ... -
android获取根View的方法
2016-06-12 16:55:07地址:http://blog.csdn.net/lloha/article/details/51496172 -
在当前Activity之上创建悬浮view之WindowManager悬浮窗效果
2021-01-05 19:23:19最近有学生做毕业设计,想使用悬浮窗这种效果,其实很简单,我们可以通过系统服务WindowManager来实现此功能,本章我们来试验一下在当前Activity之上创建一个悬浮的view。 第一步:认识WindowManager 这个接口用于与 ... -
获取当前Activity的View
2017-11-01 13:29:20 -
Android中如何通过View获取Activity
2021-06-05 04:34:49所以我们可以通过如下代码获取想要的activity。 public static Activity getActivityFromView(View view) { if (null != view) { Context context = view.getContext(); while (context instanceof ContextWrapper) ...在开发过程中,我们会遇到下面情况:
Button button = (Button) findViewById(R.id.btn);
button.setOnClickListener(MainActivity.this);
if(button instanceof AppCompatButton){
Log.d("HHHHH","====button is appCompatButton====");
}
getActivityInfo(button);
public static void getActivityInfo(View view){
Context context=view.getContext();
Log.d("HHHHH","getActivityInfo-getContext="+context);
if(context instanceof Activity){
Activity activity= (Activity) context;
Log.d("HHHHH","getActivityInfo-name="+activity.getClass().getSimpleName());
}
}
结果如下:
从日志打印结果来看,Button变成了 AppCompatButton ,view.getContext得到的是TintContextWrapper,而不是Activity。
原因如下:
我们的activity继承自AppCompatActivity时,也就是引用的是v7包时,我们的button就自动转为AppCompatButton 了(具体的可以参见AppCompatButton 源码注释)。同时在AppCompatButton 中我们的Context就变成了图中第二个框中的TintContextWrapper了。
解决方案
原来在继承自AppCompatActivity时,Android底层会将我们应用的控件转为v7包中对应的控件,Context就被替换成了TintContextWrapper(他也继承自ContextWrapper)。所以我们可以通过如下代码获取想要的activity。
public static Activity getActivityFromView(View view) {
if (null != view) {
Context context = view.getContext();
while (context instanceof ContextWrapper) {
if (context instanceof Activity) {
return (Activity) context;
}
context = ((ContextWrapper) context).getBaseContext();
}
}
return null;
}
-
安卓开发之在当前Activity获取视图View
2021-06-04 01:01:04一般来说,获取当前活动中的某一个视图还是很方便的,我们在使用onClick函数的时候经常会见到这样的用法:@Overridepublic void onClick(View v) {Snackbar.make(v, "真的要删除全部数据吗?", Snackbar.LENGTH_...一般来说,获取当前活动中的某一个视图还是很方便的,我们在使用onClick函数的时候经常会见到这样的用法:
@Override
public void onClick(View v) {
Snackbar.make(v, "真的要删除全部数据吗?", Snackbar.LENGTH_SHORT)
.setAction("是哒!", new View.OnClickListener() {
@Override
public void onClick(View v) {
adapter.deleteAllTips();
refreshTips();
Toast.makeText(MainActivity.this, "已经删除", Toast.LENGTH_SHORT).show();
}
}).show();
}
我们注意到,make函数的第一个参数是v,这可以是当前布局的任意一个View,Snackbar会使用这个View来找到最外层的布局从而展示Snackbar。但是我们有的时候并不是使用onClick函数来调用Snackbar。例如我们会在onOptionsItemSelected函数中使用Snackbar。此时,我们可以借用下列方法获取View视图:
getWindow().getDecorView().findViewById(Android.R.id.content)
就上述例子来说,可以修改为这样:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.delete:
//TODO 删除本地数据
Snackbar.make(getWindow().getDecorView().findViewById(R.id.delete), "真的要删除全部数据吗?", Snackbar.LENGTH_SHORT)
.setAction("是哒!", new View.OnClickListener() {
@Override
public void onClick(View v) {
adapter.deleteAllTips();
refreshTips();
Toast.makeText(MainActivity.this, "已经删除", Toast.LENGTH_SHORT).show();
}
}).show();
break;
default:
//TODO 黑人困惑......
Toast.makeText(this,"default",Toast.LENGTH_LONG).show();
}
return true;
}
就是这样啦,蟹蟹大家的阅读!
-
Android 获取activity 所有的view
2021-12-02 22:27:01Android 获取activity 所有的view /** * @note 获取该activity所有view */ public List getAllChildViews() { View view = this.getWindow().getDecorView(); return getAllChildViews(view); } private... -
从当前Activity 获取根视图(Root view )
2015-07-30 15:59:391. getWindow().getDecorView().findViewById(android.R.id.content) ...2. private static View getRootView(Activity context) { return ((ViewGroup)context.findViewById(android.R.id.cont -
通过ADB命令获取当前activity
2021-06-11 14:16:28自动化测试需要获得当前的activity,来判断处于的页面是否正确;hierarchy view经常连不上真机,无法获得activity,所以直接用 adb命令来查看当前运行的 activity就可以;方法一:1、cmd命令中输入:adb shell 进入... -
将一个activity转换成一个view并显示
2014-11-18 15:07:26LocalActivityManager类是管理activity的,然后通过startActivity(String id, Intent intent)这个方法获取Window获取当前Window对象,再然后调用getDecorView()方法获取当前activity对应的view,这样就可以使用... -
android获取当前界面activity对象
2021-04-11 11:37:59现在我们可以使用纯java代码来获取当前系统中的activity对象,有了activity对象我们就可以做很多想做的事情,比如监听改activity的生命周期,给改activity界面添加浮动view等等。废话少说看下面方法:... -
获取activity的根布局
2017-01-12 19:35:02这个我真没办法回答,但是我能告诉你怎么去拿activity布局文件中的根布局。android其实有一个getRootView()的方法,但是通常拿不到id,这是为什么呢?这是因为拿到的getRootView 是在ContentView外的DecorView。 -
Android:Activity获取当前view的截图
2019-11-14 17:22:45最近做分享小程序里面缩略图显示当前view显示的内容,于是就是截图当前显示view的屏幕,下面只是当前view的截图,不包含状态栏的高度 public static Bitmap onCut(Activity activity){ //获取window最底层的view... -
Android中Activity获取View宽高的常用方式
2021-11-29 23:34:39Because:View的measure()与Activity的生命周期没有同步执行,因此不能保证在onCreate()、onStart()、onResume()中获取控件宽/高时,这个View已经测量结束,so,如果没有测量完成,我们取得的宽高就是0。 Activity中... -
android 获取当前activity的最顶层及添加布局
2020-12-20 06:53:04顾名思义,getParent就是获取view的父亲节点,而getRootView是寻找当前的view层次中处在最顶层的view,可理解为找出该view实例所在的view层次的根view。如果这个view文件只是一个activity.setContentView时所引用的... -
Android 触摸事件监听(Activity层,ViewGroup层,View层)详细介绍
2021-01-04 23:20:44ViewGroup层:ViewGroup层可以自主控制是否让子View获取触摸事件 View层:可以决定自己是否真正的消费触摸事件,如果不消费抛给上层ViewGroup Activity级别的手势监听:(右滑动返回上层界面) Activity层手势... -
Android 获取Activity当前view
2017-05-25 18:12:00View cv = getWindow().getDecorView();来自为知笔记(Wiz) -
Android 获取当前Activity 的所有控件 并做统一控制
2021-02-20 17:04:59View decorView = this.getWindow().getDecorView(); List<View> allChildViews = getAllChildViews(decorView); for (int i = 0; i < allChildViews.size(); i++) { View view1 = allChildViews.get(i... -
Android之获取当前Activity名称
2018-06-22 11:06:42一、创建类ActivityCollectorpublic class ActivityCollector { public static List<Activity> activities=new ArrayList&... public static void addActivity(Activity activity) { activ... -
获取 Activity中所有的View ViewGroup
2019-11-28 10:08:33获取 Activity中所有的View ViewGroup 返回View Activity.getWindow().getDecorView() 返回ViewGroup (ViewGroup)Activity.getWindow().getDecorView() 原文:从赵子龙的文章获取 -
Android Activity 与View 的互动思考
2021-11-27 16:37:36前几天有个小伙伴问我个问题:当Activity 退到后台(未销毁),此时对View 进行requestLayout/invalidate 操作,会有效果吗?虽然直觉和经验告诉我是没有效果的,但是还是要以理服人。本篇循着Activity 生命周期,... -
android 获取activity当前view
2015-04-23 17:42:00View cv = getWindow().getDecorView(); -
如何获取Activity的根视图
2013-03-24 01:08:29在Activity中怎么获取当前Activity的根View, 即获取xml文件定义的View?? getWindow().getDecorView(); //获取当前Activity的跟视图 -
获取当前处于activity状态的view controller
2015-05-26 14:41:44// 获取当前处于activity状态的view controller - (UIViewController *)activityViewController { UIViewController* activityViewController = nil; UIWindow *window = [[UIApplication sharedApplication] ke