首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何使用兼容性库获取"?android:attr/actionBarSize"

从 Android 8.0(API 级别 26)开始,android:attr/actionBarSize属性已经被弃用。取而代之的是,在 Android 8.0 及更高版本中,您应该使用android:navigationBarSize属性来控制导航栏的大小。

以下是如何使用兼容性库获取android:navigationBarSize属性的示例代码:

代码语言:java
复制
import android.os.Build;
import android.support.annotation.RequiresApi;
import android.view.View;
import android.view.ViewGroup;
import android.widget.LinearLayout;
import android.widget.TextView;

public class CompatibilityUtils {

    @RequiresApi(Build.VERSION_CODES.O)
    public static void setActionBarSize(ViewGroup viewGroup, int actionBarSize) {
        if (Build.VERSION.SDK_INT < Build.VERSION_CODES.O) {
            // Do nothing, the code is not needed since SDK 26 (Android 8.0)
        } else {
            LinearLayout.LayoutParams layoutParams = (LinearLayout.LayoutParams) viewGroup.getLayoutParams();
            layoutParams.height = actionBarSize;
            viewGroup.setLayoutParams(layoutParams);
        }
    }

    public static int getActionBarSize(View view) {
        ViewGroup viewGroup = (ViewGroup) view.getParent();
        if (Build.VERSION.SDK_INT < Build.VERSION_CODES.O) {
            // Do nothing, the code is not needed since SDK 26 (Android 8.0)
        } else {
            LinearLayout.LayoutParams layoutParams = (LinearLayout.LayoutParams) viewGroup.getLayoutParams();
            return layoutParams.height;
        }
        return 0;
    }
}

要使用这个兼容性库,您只需在您的代码中导入CompatibilityUtils类,然后调用setActionBarSizegetActionBarSize方法。

代码语言:java
复制
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        ViewGroup viewGroup = findViewById(R.id.view_group);
        CompatibilityUtils.setActionBarSize(viewGroup, 250);

        // ... other code ...
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();

        ViewGroup viewGroup = findViewById(R.id.view_group);
        CompatibilityUtils.setActionBarSize(viewGroup, 0);
    }
}

在上述代码中,setActionBarSize方法会将viewGroup的高度设置为250dp。在onDestroy方法中,我们再将viewGroup的高度重置为0,以保持actionBarSize的值与当前布局相匹配。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

如何使用Sqlmap获取数据

我们在这里这里添加一个通过域名获取IP的命令 Sqlmap是一款开源的命令行自动SQL注入工具。它能够对多种主流数据进行扫描支持,基于Python环境。...它主要用于自动化地侦测和实施SQL注入攻击以及渗透数据服务器。...SQLMAP配有强大的侦测引擎,适用于高级渗透测试用户,不仅可以获得不同数据的指纹信息,还可以从数据中提取数据,此外还能够处理潜在的文件系统以及通过带外数据连接执行系统命令等。...id=200 --dbs 此时显示出所有的数据 第三步:检测出数据之后,开始获取它里面的表 (batch的意思是不用一直yes,直接运行到底) 这时就检测出来了 第四步:我们来检测一下admin_user...id=200 -C admin_user_name,admin_user_pass -T admin_user -D db363851433 --batch --dump 此时我们就获取到了所有的数据了

4.9K70
  • Android 样式系统 | 常见的主题背景属性

    在前一篇 Android 样式系统文章 中,我们介绍了主题背景与样式的区别,以及如何编写灵活的样式与布局代码用于抽离可变化部分。...本文并未完整列举所有属性,只列举了我所使用的,建议您浏览下面的属性文件的定义链接来获取更多信息。...attr/listPreferredItemHeight 列表项的标准高度 (最小值); ?attr/actionBarSize 工具栏的高度。 Drawables ?...平台跟有时候定义了相同的属性,如 colorPrimary。这时候系统优先使用非平台版本的属性,它们可以被所有级别的 API 使用。为了向后兼容,它们会被完整的复制到中。...优先使用非平台版本的属性,它们可以被所有级别的 API 使用 更多资源 为了获取可以使用的全部主题背景属性,请查阅以下信息: Android platform AppCompat Material

    1.2K30
    领券