我知道如何使用view . getrootview()获得根视图。我也能够从一个按钮的onClick事件中获得视图,其中参数是一个视图。但是我如何在活动中获得视图呢?
当前回答
我在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@#######
请证实。
其他回答
这是我用来获得根视图,因为在XML文件中找到了setContentView赋值:
final ViewGroup viewGroup = (ViewGroup) ((ViewGroup) this
.findViewById(android.R.id.content)).getChildAt(0);
Kotlin扩展解决方案
使用它来简化活动中的访问。然后你可以直接从Activity或Activity中引用rootView。它外面的rootView:
val Activity.rootView get() = window.decorView.rootView
如果你想为Fragments添加相同的一致性,添加:
val Fragment.rootView get() = view?.rootView
获取当前活动的视图
在任何onClick我们将得到“视图视图”,通过使用“视图”得到rootView。
View View = View . getrootview ();
并在片段中获取View
View view = FragmentClass.getView();
另一个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作为视图。
以防有人需要更简单的方法:
下面的代码给出了整个活动的视图:
[View]
要在活动中获取某个视图,例如在活动中获取imageView,只需添加你想要获取的视图的id:
View v1 = getWindow().getDecorView().getRootView().findViewById(R.id.imageView1);
希望这对大家有所帮助
推荐文章
- 如何在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中的密钥存储库
- 从资产中读取文件