view.getParent()与view.getRootView()

  • 顾名思义,getParent就是获取view的父亲节点,而getRootView是寻找当前的view层次中处在最顶层的view,可理解为找出该view实例所在的view层次的根view。
  • 如果这个view文件只是一个activity.setContentView时所引用的一个view。
    1.当view处于xml文件的根节点时,通过getParent到的view都是它身。
    2当view处于xml的非根节点时,通过getParent获得的是view的父亲节点。
    3.无论处于xml的根节点还是子节点,通过getRootView获得的都是当前Activity的DecorView(关于DecorView,可参考http://blog.youkuaiyun.com/houliang120/article/details/51138087)。
  • 区别于上面的情况,如果这个view处于Fregment中(猜测viewpager这些可能类似)
    1.当view处于xml文件的根节点时,通过getParent获得的是null(猜测这个可能是由于view处于Fregment中,而又无法获取父节点导致)。
    2.当view处于非根节点时,通过getParent获得的是它的父亲节点
    3.无论处于xml的根节点还是子节点,通过getRootView获取的都是它本身。
`Directory.GetParent`方法用于返回指定路径的父目录。以下是该方法的使用介绍: ### 基本使用示例 ```csharp using System; using System.IO; class Program { static void Main() { // 获取当前应用程序域的基目录 string baseDirectory = AppDomain.CurrentDomain.BaseDirectory; // 获取父文件夹路径 DirectoryInfo parentDirectory = Directory.GetParent(baseDirectory); if (parentDirectory != null) { string parentPath = parentDirectory.FullName; Console.WriteLine("父文件夹路径: " + parentPath); // 获取父文件夹路径的父文件夹路径 DirectoryInfo grandParentDirectory = Directory.GetParent(parentPath); if (grandParentDirectory != null) { string grandParentPath = grandParentDirectory.FullName; Console.WriteLine("父文件夹路径的父文件夹路径: " + grandParentPath); } } } } ``` 上述代码展示了如何使用`Directory.GetParent`方法来获取当前应用程序域基目录的父目录以及父目录的父目录。 ### 结合其他方法使用示例 ```csharp using System; using System.IO; class Program { static void Main() { string path = @"E:\AAA\BBB\CCC"; // 检查父目录是否存在,如果不存在则创建 DirectoryInfo parent = Directory.GetParent(path); if (parent != null && !parent.Exists) { Directory.CreateDirectory(parent.FullName); } } } ``` 此代码结合了`Directory.GetParent`、`Directory.Exists`和`Directory.CreateDirectory`方法,检查指定路径的父目录是否存在,如果不存在则创建该父目录。 ### 注意事项 - `Directory.GetParent`方法返回的是一个`DirectoryInfo`对象,如果指定的路径是根目录或者路径无效,该方法可能返回`null`,因此在使用返回的`DirectoryInfo`对象之前,最好先进行`null`检查。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值