2012-04-20 3 views
0

SeekBarをダイアログボックスに追加しようとしているうちに、TextViewSeekBarsetProgress()を反映している必要があります。私はそのように実装:RelativeLayoutがビューのすべてに当てはまらない

private void customDialogTimeout() { 
    LinearLayout ll = new LinearLayout(getSherlockActivity()); 
    ll.setOrientation(LinearLayout.VERTICAL); 

    RelativeLayout input = new RelativeLayout(getSherlockActivity()); 

    final SeekBar timeoutSeekBar = new SeekBar(getSherlockActivity()); 
    timeoutSeekBar.setId(1); 
    final TextView seekBarStatus = new TextView(getSherlockActivity()); 
    seekBarStatus.setId(2); 

    LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(
     LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT); 
    RelativeLayout.LayoutParams lay1 = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.WRAP_CONTENT); 
    lay1.addRule(RelativeLayout.CENTER_VERTICAL); 
    lay1.addRule(RelativeLayout.ALIGN_PARENT_LEFT); 

    RelativeLayout.LayoutParams lay2 = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT); 
    lay2.addRule(RelativeLayout.CENTER_VERTICAL); 
    lay2.addRule(RelativeLayout.RIGHT_OF, timeoutSeekBar.getId()); 

    layoutParams.setMargins(30, 20, 30, 0); 

    input.addView(timeoutSeekBar,lay1); 
    input.addView(seekBarStatus, lay2); 

    ll.addView(input, layoutParams); 

を結果ビューは、しかしTextViewを "押し出す" のようです:

enter image description here

私が間違って何をしているのですか?私が間違った方法でこれに近づいているなら、私に知らせてください。あなたのSeekBar

答えて

1

は、その幅がRelativeLayout.LayoutParams.MATCH_PARENTに設定されていると、あなたはそのままにTextViewそれは明らかではありませんショーに追加したときに(SeekBarはすでに全体の幅を埋めるように)は、画面の外に押し出されているので:

RelativeLayout.LayoutParams lay1 = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.WRAP_CONTENT); 
    lay1.addRule(RelativeLayout.CENTER_VERTICAL); 
    lay1.addRule(RelativeLayout.ALIGN_PARENT_LEFT); 
    lay1.addRule(RelativeLayout.LEFT_OF, seekBarStatus.getId()); 

    RelativeLayout.LayoutParams lay2 = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT); 
    lay2.addRule(RelativeLayout.CENTER_VERTICAL); 
    lay2.addRule(RelativeLayout.ALIGN_PARENT_RIGHT); 

    layoutParams.setMargins(30, 20, 30, 0); 
    input.addView(seekBarStatus, lay2); 
    input.addView(timeoutSeekBar,lay1); 
関連する問題