精华内容
下载资源
问答
  • 获取当前activity的根view
    千次阅读
    2017-04-11 16:30:16
    1. getWindow().getDecorView().findViewById(android.R.id.content)

    2. private static View getRootView(Activity context)

      {

      return ((ViewGroup)context.findViewById(android.R.id.content)).getChildAt(0);  
      

      }

    更多相关内容
  • 此方法是通过view的方式获取当前activity的屏幕截图,并不是framebuffer的方式,所以有一定的局限性。但是这种方法相对简单,容易理解。 首先通过下面的函数获取Bitmap格式的屏幕截图: 代码如下: public Bitmap ...
  • 地址:http://blog.csdn.net/lloha/article/details/51496172
  • 最近有学生做毕业设计,想使用悬浮窗这种效果,其实很简单,我们可以通过系统服务WindowManager来实现此功能,本章我们来试验一下在当前Activity之上创建一个悬浮的view。 第一步:认识WindowManager 这个接口用于与 ...
  • 获取当前ActivityView

    千次阅读 2017-11-01 13:29:20
    this.getWindow().getDecorView()
    this.getWindow().getDecorView()

    引用块内容

    展开全文
  • 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());

    }

    }

    结果如下:

    28933ae27b226cf8a052719dd955f569.png

    从日志打印结果来看,Button变成了 AppCompatButton ,view.getContext得到的是TintContextWrapper,而不是Activity。

    原因如下:

    我们的activity继承自AppCompatActivity时,也就是引用的是v7包时,我们的button就自动转为AppCompatButton 了(具体的可以参见AppCompatButton 源码注释)。同时在AppCompatButton 中我们的Context就变成了图中第二个框中的TintContextWrapper了。

    f7c225297e83fafed85e071c2f8a93fe.png

    解决方案

    原来在继承自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;

    }

    展开全文
  • 一般来说,获取当前活动中的某一个视图还是很方便的,我们在使用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 /** * @note 获取activity所有view */ public List getAllChildViews() { View view = this.getWindow().getDecorView(); return getAllChildViews(view); } private...
  • 当前Activity 获取根视图(Root view )

    万次阅读 2015-07-30 15:59:39
    1. 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 进入...
  • LocalActivityManager类是管理activity的,然后通过startActivity(String id, Intent intent)这个方法获取Window获取当前Window对象,再然后调用getDecorView()方法获取当前activity对应的view,这样就可以使用...
  • 现在我们可以使用纯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...
  • Because:View的measure()与Activity的生命周期没有同步执行,因此不能保证在onCreate()、onStart()、onResume()中获取控件宽/高时,这个View已经测量结束,so,如果没有测量完成,我们取得的宽高就是0。 Activity中...
  • 顾名思义,getParent就是获取view的父亲节点,而getRootView是寻找当前view层次中处在最顶层的view,可理解为找出该view实例所在的view层次的根view。如果这个view文件只是一个activity.setContentView时所引用的...
  • ViewGroup层:ViewGroup层可以自主控制是否让子View获取触摸事件 View层:可以决定自己是否真正的消费触摸事件,如果不消费抛给上层ViewGroup Activity级别的手势监听:(右滑动返回上层界面)  Activity层手势...
  • Android 获取Activity当前view

    千次阅读 2017-05-25 18:12:00
    View cv = getWindow().getDecorView();来自为知笔记(Wiz)
  • View 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&lt;Activity&gt; 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 ActivityView 的互动思考

    千次阅读 2021-11-27 16:37:36
    前几天有个小伙伴问我个问题:当Activity 退到后台(未销毁),此时对View 进行requestLayout/invalidate 操作,会有效果吗?虽然直觉和经验告诉我是没有效果的,但是还是要以理服人。本篇循着Activity 生命周期,...
  • View cv = getWindow().getDecorView();
  • 如何获取Activity视图

    千次阅读 2013-03-24 01:08:29
    在Activity中怎么获取当前Activity根View, 即获取xml文件定义的View?? getWindow().getDecorView(); //获取当前Activity的跟视图
  • // 获取当前处于activity状态的view controller - (UIViewController *)activityViewController { UIViewController* activityViewController = nil; UIWindow *window = [[UIApplication sharedApplication] ke

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 135,495
精华内容 54,198
关键字:

获取当前activity的根view