0

SeekBarダイアログボックスにを追加しようとしたときに、TextViewを反映する必要があることに気付きsetProgress()ましたSeekBar。私はそれをそのように実装しました:

    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

ここに画像の説明を入力してください

私は何が間違っているのですか?私がこれに間違った方法でアプローチしている場合は、私に知らせてください。

4

1 に答える 1

1

SeekBar幅がに設定されて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);
于 2012-04-20T08:45:31.633 に答える