我知道如何使用view . getrootview()获得根视图。我也能够从一个按钮的onClick事件中获得视图,其中参数是一个视图。但是我如何在活动中获得视图呢?
当前回答
anyview.getRootView ();这是最简单的方法。
其他回答
Kotlin扩展解决方案
使用它来简化活动中的访问。然后你可以直接从Activity或Activity中引用rootView。它外面的rootView:
val Activity.rootView get() = window.decorView.rootView
如果你想为Fragments添加相同的一致性,添加:
val Fragment.rootView get() = view?.rootView
如果你在一个活动中,假设只有一个根视图,你可以像这样得到它。
ViewGroup viewGroup = (ViewGroup) ((ViewGroup) this
.findViewById(android.R.id.content)).getChildAt(0);
然后可以将其强制转换为真正的类
或者你可以用
getWindow().getDecorView();
注意这将包括动作栏视图,你的视图在动作栏视图下面
anyview.getRootView ();这是最简单的方法。
另一个Kotlin扩展解决方案
如果你的activity的视图是在xml中声明的(ex activity_root.xml),打开xml并给根视图分配一个id:
android:id="@+id/root_activity"
现在在你的类中,使用以下方法导入视图:
import kotlinx.android.synthetic.main.activity_root.root_activity
现在可以使用root_activity作为视图。
我在android 4.0.3中测试了这个功能,只有:
getWindow().getDecorView().getRootView()
给我们同样的观点
anyview.getRootView();
com.android.internal.policy.impl.PhoneWindow$DecorView@#########
and
getWindow().getDecorView().findViewById(android.R.id.content)
给它的孩子
android.widget.FrameLayout@#######
请证实。
推荐文章
- 如何在android中获得当前前景活动上下文?
- 如何在Android中获取当前日期?
- 获取Android设备名称
- 在WebView中上传文件
- 加载HTML文件到WebView
- Android:为什么视图没有maxHeight ?
- 如何获得具有已知资源名称的资源id ?
- 在Android上将字符串转换为整数
- 为什么“System.out。”println“工作在Android?
- WebView显示err_cleartext_not_allowed尽管站点是HTTPS
- Android M权限:对shouldShowRequestPermissionRationale()函数的使用感到困惑
- 为什么构建类型与产品风味不同?
- 我如何在一个片段中访问getSupportFragmentManager() ?
- 调试在哪里。Android Studio中的密钥存储库
- 从资产中读取文件