最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android videoview搶占焦點的處理方法

 更新時間:2017年06月16日 11:27:00   作者:Symon_sun  
這篇文章主要為大家詳細介紹了Android videoview搶占焦點的處理方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下

問題描述:

android 機頂盒應(yīng)用:
應(yīng)用程序主界面(MainActivity)只有兩個控件,一個videoview和一個button。
視頻框設(shè)置無焦點,按鍵有焦點。

首次進入應(yīng)用時焦點正常,聚焦在button上;但是當點擊button跳轉(zhuǎn)到下一個activity并返回時,焦點卻聚焦到了videoview上,并且代碼里強制設(shè)置焦點:

Button.requestFocus();

無效,現(xiàn)象是視頻加載時,焦點是在button處,但是當視頻加載完成開始播放時,整個activity失去焦點,幾秒后,焦點跑到videoview上面。 

原因分析:

查看了一下VideoView的源碼,發(fā)現(xiàn)原因出在初始化上面上:

 private void initVideoView() {
   mVideoWidth = 0;
   mVideoHeight = 0;

   getHolder().addCallback(mSHCallback);
   getHolder().setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);

   setFocusable(true);//問題出在這里
   setFocusableInTouchMode(true);
   requestFocus();

   mPendingSubtitleTracks = new Vector<Pair<InputStream, MediaFormat>>();

   mCurrentState = STATE_IDLE;
   mTargetState = STATE_IDLE;
 }

看到這里就豁然開朗了,這就解釋了為什么xml中設(shè)置了android:focusable="false"而videoview仍然能獲取焦點的問題,也解釋了為什么button會獲得焦點而當視頻加載好后被videoview搶占的問題。

解決方法:

明白了問題所在就好解決了,因為只是解決焦點問題,所以無需自定義videoview那么麻煩,只需要重寫onResume()方法即可:

@Override
  protected void onResume() {
    super.onResume();
    videoView.setFocusable(false);
  } 

總結(jié):

一定要多看源碼!

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論

岱山县| 龙陵县| 花莲县| 龙门县| 金寨县| 军事| 印江| 淮滨县| 澎湖县| 佛学| 武汉市| 塔河县| 盐城市| 定陶县| 玛沁县| 平湖市| 屯留县| 武隆县| 兴山县| 凤翔县| 富宁县| 玛曲县| 股票| 兰州市| 澳门| 大邑县| 灵山县| 隆昌县| 金山区| 延安市| 凤翔县| 禹城市| 定南县| 莫力| 漾濞| 东兴市| 潍坊市| 从江县| 庆安县| 西乡县| 大名县|