公司开发了一个mediaPlayer,播放视频和音频,遇到一个很纠结的问题就是,当操作系统中的标题按钮改变时就会发生一些问题,改大就出现按钮不全的问题,改小的时候,又发现按钮往上移位,实质性的就是按钮布局的问题,发生了向下和向上的移位?怎么办?
解析:当系统标题栏改变时,player受到影响的只是播放器的标题栏高度,播放面板是保持不变的(程序中看似是不变的),按钮和标题栏高度之和是一定的,这种情况我就发现,在开发软件的时候,程序里得到了title的高度,之后给了它一个固定的值,播放面板的值是和title的高度有关系的,问题也就在这里:
系统的变化改变了title的高度,而title被设置为一个固定的值,所以不论系统怎样更改标题按钮的大小,播放面板都是固定的,title的变高了,就只能把按钮往下面(向上)移位,导致按钮显示不全(显示过多),解决问题的方法就是把title的值设成动态的,不论系统怎么更改,都能够得到相应的title的高度,播放面板的高度也就受到title的高度更改的影响,相应的变大或变小,怎样才能得到player的标题栏高度呢?
我问了几个老的开发人员和同事,都说对这些不是太熟悉,我也看了很多关于容器的api文档,也是没找到,这些容器的任何一个高度或者大小都是可以通过容器提供的方法的得到的,我不能让问题卡在这里,通过网络知识,终于找到了方法,不是api里面没有,而是根本没注意是那个方法
所以:要求得player的标题栏高度,------> player.getInsets(),得到的对象里有上下左右的属性都有,top、left、right、bottom,player.getInsets().top就是标题栏的高度,取到这个高度后就 方便了,解除了软件开发时考虑不全而带来的麻烦,一劳永逸。