ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

android – 为什么我不能在以编程方式添加的视图上设置高程?

2019-06-23 08:14:42  阅读:195  来源: 互联网

标签:android xamarin-android android-elevation


免责声明:我使用的是Xamarin.Android.

我创建了一个视图,设置了它的高程,然后将其添加到我的主布局中.触发事件时,视图已成功添加到布局中,但没有任何高程阴影.

这是我正在使用的:

以编程方式添加的视图:

public class TooltipTest : FrameLayout
{
    private Context context;
    private ShapeDrawable box;
    private View carrot;
    private string message;

    public TextView TooltipText
    {
        get;
        private set;
    }

    public TooltipTest(Context context, string message) : base(context)
    {
        this.context = context;
        this.message = message;

        Initialize();
    }

    private void Initialize()
    {
        CreateText();
    }

    private void CreateText()
    {
        int paddingTopBottom = 30;
        int paddingLeftRight = 27;

        TooltipText = new TextView(context);
        TooltipText.Text = message;
        TooltipText.SetTextColor(new Color(ContextCompat.GetColor(context, Resource.Color.tooltipText)));
        TooltipText.SetTextSize(ComplexUnitType.Sp, 14f);
        TooltipText.SetPadding(paddingLeftRight, paddingTopBottom, paddingLeftRight, paddingTopBottom);
        TooltipText.SetBackgroundColor(new Color(ContextCompat.GetColor(context, Resource.Color.tooltipBackground)));

        AddView(TooltipText);
    }

要添加视图的事件:

        ButtonTest.Click += (sender, e) => {
            var tooltip = new TooltipTest(this, Resources.GetString(Resource.String.test_text));
            var tooltipParams = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WrapContent, ViewGroup.LayoutParams.WrapContent);
            tooltip.Elevation = 20f;
            ParentLayout.AddView(tooltip, tooltipParams);
        };

关于为什么阴影没有显示的任何想法?我已经尝试在工具提示上设置SetClipToPadding(false)和SetClipChildren(false),但这没有任何效果.

解决方法:

使用AppCompat方法ViewCompat.SetElevation(View,int)根据需要设置高程.但是在Lollipop之前的设备上,该方法似乎无能为力.
我发现为前Lollipop UI元素渲染阴影的唯一方法是使用背景代替:

  android:background="@android:drawable/dialog_holo_light_frame"

如果您想进一步了解此主题,请转到此reddit主题并搜索高程.那里有非常好的更新信息.

标签:android,xamarin-android,android-elevation
来源: https://codeday.me/bug/20190623/1268734.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有