5

ビューオブジェクトを生成するために使用しているコードは次のとおりです。

        // creates the seekBar
        sBGauge = new SeekBar(this);
        sBGauge.setMax(depthL - 1);
        sBGauge.setMinimumWidth(150);
        sBGauge.setId(2000 + i);
        sBGauge.setOnSeekBarChangeListener(this);

sBGauge.setMinimumWidth(); の設定に関係なく 常に約 20 幅しかないように見えます。

何かご意見は?ありがとう

編集:さらに情報を提供するために、テーブル行の2つのtextViewの間でこのシークバーを使用しています。

バンプ

4

2 に答える 2

2

@Amit Hoodaあなたのソリューションは私の問題を解決しませんでしたが、解決策を見つけるための正しい道を導きました。

この問題を解決するために私がしなければならなかったことは、TableLayout 内で動的に作成された TableRow から LinearLayout に変更することでした。次に、画面の幅を取得し、テキストビューを差し引いて、結果の数値でシークバーの幅を設定することができました。

// gets the width of the screen to set the seekbar width
    Display display = getWindowManager().getDefaultDisplay(); 
    int width = display.getWidth();
width = width - 170;

LinearLayout lL = new LinearLayout(this);
// creates the seekBar
        sBGauge = new SeekBar(this);
        sBGauge.setMax(depthL - 1);
        sBGauge.setId(2000 + i);
        sBGauge.setLayoutParams(new LinearLayout.LayoutParams(width, 50, 1f));
        sBGauge.setOnSeekBarChangeListener(this);
于 2012-10-19T19:02:02.673 に答える
1

これを試して

    LayoutParams lp = new LayoutParams(150, 150);
    sBGauge.setLayoutParams(lp);

必要に応じて値 150 と 150 を変更できます。

于 2012-10-17T06:28:35.610 に答える