Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/185.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android seekbar-拇指在设置为可绘制后不可见_Android_Seekbar - Fatal编程技术网

Android seekbar-拇指在设置为可绘制后不可见

Android seekbar-拇指在设置为可绘制后不可见,android,seekbar,Android,Seekbar,我有一个搜索栏,我正在设置可绘制的代码。当活动开始时,我可以看到更改后的拇指可绘制,但如果我从seekbar活动开始新活动并返回,则seekbar的拇指将不可见(仅当我再次将其设置为可绘制时)。只有当我从其他活动回到seekbar活动时,才会发生这种情况 我需要在onRestart()中更改拇指的可绘制性,因为其他活动可能会更改拇指的颜色或形状,我需要刷新它的可绘制性 我在seekbar上尝试了invalidate(),但没有用 编辑: 我尝试创建3个静态可绘制对象并在onCreate()中加载

我有一个搜索栏,我正在设置可绘制的代码。当活动开始时,我可以看到更改后的拇指可绘制,但如果我从seekbar活动开始新活动并返回,则seekbar的拇指将不可见(仅当我再次将其设置为可绘制时)。只有当我从其他活动回到seekbar活动时,才会发生这种情况

我需要在onRestart()中更改拇指的可绘制性,因为其他活动可能会更改拇指的颜色或形状,我需要刷新它的可绘制性

我在seekbar上尝试了invalidate(),但没有用

编辑: 我尝试创建3个静态可绘制对象并在onCreate()中加载图像,我注意到在返回SeekBar活动后,如果我将thumb Drawable设置为已设置的thumb Drawable,则thumb可见,但如果我更改可绘制对象,则thumb不可见

编辑2:

在本例中,我将加载的Drawable设置为thumb:

String gender = getGender();
    if (gender.equals(Profile.GENDER_1)) {
        mSeekBar.setThumb(mDrawable1);
    } else if (gender.equals(Profile.GENDER_2)) {
        mSeekBar.setThumb(mDrawable2);
    } else {
        mSeekBar.setThumb(mDrawable3);
    }
这是如果我试图从资源中获取可提取的内容

字符串gender=getGender()

在这两种情况下,拇指都变得看不见了

有什么问题吗?有人知道答案吗?
谢谢大家!

在使用可绘制边界之前,您没有设置它

尝试在setThumb()调用之前添加此行:


在使用可绘制边界之前,不能设置其边界

尝试在setThumb()调用之前添加此行:


你可以发布你用来更改可绘制的代码吗?更新了问题,谢谢!嗯,您可以在将mDrawablex的值设置为seekbar后尝试打印它,以确保它是可绘制的且不为空。(Log.i(“drawable”,“Get drawable?”+mDrawable);我已经这样做了,但不幸的是不是空的:(,如果我设置了相同的drawable,拇指仍然可见,只有在我使用不同的(不是新的)drawable更改drawable时才会隐藏)。再次感谢您的时间。您可以发布用于更改可绘制的代码吗?更新了问题,谢谢!嗯,您可以在将mDrawablex设置为seekbar后尝试打印它的值,以确保它是可绘制的且不为空。(Log.i(“drawable”,“Get drawable?”+mDrawable);我已经这样做了,但不幸的是不是空的:(,如果我设置了相同的可绘制对象,则拇指将保持可见,仅当我使用不同的可绘制对象(而不是新的)更改可绘制对象时,拇指才会隐藏)。再次感谢您的时间,Google当然更改了kitkat和marshmallow之间某个可绘制边界的默认行为。当然,Google也更改了kitkat和marshmallow之间某个可绘制边界的默认行为。
if (gender.equals(Profile.GENDER_1)) {
    mDrawable = mSeekBar.getContext().getResources().getDrawable(R.drawable.slider_thumb_1);
} else if (gender.equals(Profile.GENDER_2)) {
    mDrawable = mSeekBar.getContext().getResources().getDrawable(R.drawable.slider_thumb_2);
} else {
    mDrawable = mSeekBar.getContext().getResources().getDrawable(R.drawable.slider_thumb_3);
}

mSeekBar.setThumb(mDrawable);
mDrawable.setBounds(0,0, 
    mDrawable.getIntrinsicWidth(), 
    mDrawable.getIntrinsicHeight()
);