2011-05-27 9 views
1

私は、Webビューの一番下にボタンを配置しようとしています。何らかの理由で、上に表示され続けます。 -LayoutParams:ボタンを下に置く方法

私が先に行くつもりだとxmlの私の再利用可能なビューのベースを設定

webview = new WebView(this); 
    RelativeLayout.LayoutParams params2 = new RelativeLayout.LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.FILL_PARENT); 
    Button myButton = new Button(this); 
    myButton.setId(11); 
    LayoutParams buttonParams = new LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT); 

    //   params.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM); 
    myButton.setText("A Button!"); 
    myButton.setLayoutParams(new LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT)); 

    buttonParams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM, -1); 
    myButton.setLayoutParams(buttonParams); 

    webview.setLayoutParams(params2); 
    //setBackgroundcolor(0) - You must make the background color transparent before setting backgroundResource 
    webview.setBackgroundColor(0); 
    webview.setBackgroundResource(R.drawable.background); 
    webview.addView(myButton); 

編集:ここに私のコードです。私はそれの中にRelativeLayoutWebViewButtonを含む)を持つScrollViewを使用します。なぜなら、ウェブページの最後に到達したら、私はButtonが表示されるだけだからです。

+3

XMLでこれをやっていない理由はありますか? –

+0

はい。私は、この活動を開始した意図に基づいて意見を設定するつもりです。だからここに内部論理があるだろう。 – LuxuryMode

答えて

3

WebViewAbsoluteLayoutですので、RelativeLayout.LayoutParamsは使用できません。さらに、AbsoluteLayoutは推奨されず、WebViewは間違いなくコンテナとして使用するビューではありません。

FrameLayoutに入れたWebViewの上にRelativeLayoutをオーバーレイすると、重ねて表示され、最後のビュー(RelativeLayout)が上に追加されます。

+0

私はOPに貼り付けませんでしたが、 'WebView'は' RelativeLayout'の中にネストされています。だから私は 'RelativeLayout'にボタンを追加するだけですか?もしそうなら、 'WebView'の下に、どのようにして底に貼り付けるのですか? – LuxuryMode

+0

@LuxuryMode:はい、Houcineによって提案されたパラメータを使用してボタンを相対レイアウトに追加します。 WebViewの後に追加すると、それが上に描画されます。 – bigstones

2

WebViewRelativeLayoutではなく、RelativeLayoutを拡張するため、RelativeLayoutのルールを追加することは効果がありません。ボタンのレイアウト重力を下に設定してみてください。

2
buttonParams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM, RelativeLayout.TRUE); 
+0

は実行時にそれを行う可能性が好きでした! –

関連する問題