2016-04-12 24 views
0

WebViewの前にボタンがあるWebViewがあります。ボタンはAndroid API 21以上の魅力的なように動作しているexternブラウザのURLを開きます。しかし、私はまた、より多くのデバイスに到達するためにAPI 16でテストしています。 API API 19以下では、ボタンが表示されず、その上にボタンが表示され、機能しています。 ボタンは、WebViewがURLを取得している場合にのみ表示されます。その前に、ボタンは見えません。ボタンがWebViewの前に表示されない(API 19など)

私の関連するJavaコードは次のとおりです。

public void launchWebViewByURL(String url) 
    { 
     showSpinner(); 
     Button browserButton = (Button) fragmentView.findViewById(R.id.WebViewButton); 
     browserButton.setVisibility(View.VISIBLE); 
     webView.loadUrl(url); 
    } 

私の関連XMKが

<RelativeLayout 
     android:id="@+id/WebViewLayout" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentStart="true" 
     android:layout_alignParentRight="true" 
     android:layout_alignParentEnd="true" 
     android:layout_above="@+id/statusIndicators" 
     android:layout_below="@+id/statusIndicatorTop"> 

     <Button 
      android:id="@+id/WebViewButton" 
      android:text="@string/webViewButton" 
      android:layout_width="80dp" 
      android:layout_height="50dp" 
      android:textSize="7dp" 
      android:alpha="0.7" 
      android:visibility="invisible" 
      android:layout_alignParentBottom="true" 
      android:layout_alignParentRight="true" 
      android:layout_alignParentEnd="true" 
      android:layout_marginRight="5dp" 
      android:layout_marginBottom="5dp" /> 

     <WebView 
      android:id="@+id/WebView" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:requiresFadingEdge="vertical" 
      android:fadingEdgeLength="16dp" 
      android:background="@color/colorPrimary" 
      android:overScrollMode="ifContentScrolls" 
      android:layout_alignParentRight="true" 
      android:layout_alignParentLeft="true" 
      android:visibility="visible" /> 


     <RelativeLayout 
      android:id="@+id/WebViewOverlay" 
      android:layout_width="match_parent" 
      android:layout_height="fill_parent" 
      android:background="@android:color/black" 
      android:visibility="invisible" 
      android:alpha="0.5"> 

      <com.pnikosis.materialishprogress.ProgressWheel 
       android:id="@+id/ProgressWheel" 
       android:layout_width="@dimen/spinner_dimen" 
       android:layout_height="@dimen/spinner_dimen" 
       android:layout_centerHorizontal="true" 
       android:layout_centerVertical="true" 
       wheel:matProg_barColor="@color/colorAccent" 
       wheel:matProg_circleRadius="@dimen/spinner_dimen" 
       wheel:matProg_barWidth="@dimen/spinner_breadth" 
       wheel:matProg_progressIndeterminate="true" 
       /> 

     </RelativeLayout> 

    </RelativeLayout> 

WebViewのはボタンのようにアルファを持っている場合は、ボタンが表示されています触れることはできません。 WebViewが見えなくなると、ボタンが表示され、機能します。 誰かが、19以下のような「下位の」APIでButtonを前面に持っていくのを手伝ってもらえますか?

答えて

1

ボタンをタッチして待機していない理由はあります。 WebViewのアルファを変更すると、ViewGroup(あなたのケースではRelativeLayout)に引き込まれ、その範囲内のすべてのタッチイベントを消費しています。あなたのための解決策は、あなたのボタンを前面に持っていくことです。どのように動作するかを知るために、RelativeLayoutのドキュメントを読むことを検討することができます。コードの下

<RelativeLayout 
    android:id="@+id/WebViewLayout" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:layout_above="@+id/statusIndicators" 
    android:layout_below="@+id/statusIndicatorTop"> 

    <WebView 
     android:id="@+id/WebView" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:background="@color/colorPrimary" 
     android:fadingEdgeLength="16dp" 
     android:overScrollMode="ifContentScrolls" 
     android:requiresFadingEdge="vertical" 
     android:visibility="visible"/> 

    <RelativeLayout 
     android:id="@+id/WebViewOverlay" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:alpha="0.5" 
     android:background="@android:color/black" 
     android:visibility="invisible"> 

     <com.pnikosis.materialishprogress.ProgressWheel 
      android:id="@+id/ProgressWheel" 
      wheel:matProg_barColor="@color/colorAccent" 
      wheel:matProg_barWidth="@dimen/spinner_breadth" 
      wheel:matProg_circleRadius="@dimen/spinner_dimen" 
      wheel:matProg_progressIndeterminate="true" 
      android:layout_width="@dimen/spinner_dimen" 
      android:layout_height="@dimen/spinner_dimen" 
      android:layout_centerHorizontal="true" 
      android:layout_centerVertical="true" 
      /> 

    </RelativeLayout> 

    <Button 
     android:id="@+id/WebViewButton" 
     android:layout_width="80dp" 
     android:layout_height="50dp" 
     android:layout_alignParentBottom="true" 
     android:layout_alignParentEnd="true" 
     android:layout_alignParentRight="true" 
     android:layout_marginBottom="5dp" 
     android:layout_marginRight="5dp" 
     android:alpha="0.7" 
     android:text="@string/webViewButton" 
     android:textSize="7dp" 
     android:visibility="invisible"/> 
</RelativeLayout> 
+0

を動作するはずです私の問題を解決している、あなたの非常に感謝。 –

0

相対レイアウトでは、要素の「z」の順序は、それらの要素が相対レイアウトに追加された順序で定義されます。したがって、要素がレイアウト内にあるほど、そのz値は高くなります。つまり、WebViewButtonをレイアウトの下部に移動すると、レイアウトがwebviewよりも上になります。 WebViewのは、あなたのボタンの前にあるように、そのは、WebViewのが消費するばかりので

0
try for this 


    <Button 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:text="Enter" 
       android:id="@+id/WebViewButton" 
       /> 

      <WebView 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:id="@+id/webView" 
       android:layout_below="@+id/WebViewButton" 
       android:layout_alignParentLeft="true" 
       android:layout_alignParentStart="true" 
       android:layout_alignParentRight="true" 
       android:layout_alignParentEnd="true" 
       android:layout_alignParentBottom="true" /> 
0
<RelativeLayout 
     android:id="@+id/WebViewLayout" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentStart="true" 
     android:layout_alignParentRight="true" 
     android:layout_alignParentEnd="true" 
     > 



     <WebView 
      android:id="@+id/WebView" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:requiresFadingEdge="vertical" 
      android:fadingEdgeLength="16dp" 
      android:background="@color/colorPrimary" 
      android:overScrollMode="ifContentScrolls" 
      android:layout_alignParentRight="true" 
      android:layout_alignParentLeft="true" 
      android:visibility="visible" /> 


     <Button 
      android:id="@+id/WebViewButton" 
      android:text="gfjhfgj" 
      android:layout_width="80dp" 
      android:layout_height="50dp" 
      android:textSize="7dp" 
      android:alpha="0.7" 
      android:visibility="visible" 
      android:layout_alignParentBottom="true" 
      android:layout_alignParentRight="true" 
      android:layout_alignParentEnd="true" 
      android:layout_marginRight="5dp" 
      android:layout_marginBottom="5dp" /> 

    </RelativeLayout> 
関連する問題