コードからUIを構築していて、ProgressBarウィジェットを正常に追加できますが、ウィジェットのサイズを必要な値に変更することはできません。 50dp)。私は次のコードを試しました。実行時に追加されたProgressBarの幅を変更する
ProgressBar progressBar = new ProgressBar(activity, null, android.R.attr.progressBarStyleHorizontal);
progressBar.setMinimumHeight(20);
progressBar.setMinimumWidth(100);
は私も運をプログレスバーLayoutParamsを設定していないが、再び何も、私は別のレイアウトにウィジェットをラップしようとしましたが、それでもない試みました。
私はそれを行う方法がわからないので、誰でも助けてもらえますか? XMLを使用するソリューションがある場合は動作しますが、実行時にディメンションと場所を設定する必要があります。
進捗XMLについては、以下を使用しました。
<ProgressBar
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="10dp"
android:indeterminateOnly="false"
android:progressDrawable="@android:drawable/progress_horizontal"
android:indeterminateDrawable="@android:drawable/progress_indeterminate_horizontal"
android:maxWidth="1000dp"
/>
次に、それを膨らませるコードは次のとおりです。これは私たちが議論してきたことの組み合わせです。
<ProgressBar
android:id="@+id/progress"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:indeterminate="true"
android:visibility="visible"
style="@android:style/Widget.ProgressBar.Large.Inverse"
/>
そしてコード:
LayoutInflater layoutInflater = (LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
ProgressBar progressBar = (ProgressBar)layoutInflater.inflate(R.layout.progress_bar, null);
progressBar.setMinimumHeight(10);
progressBar.setMinimumWidth(200);
progressBar.setLayoutParams(new RelativeLayout.LayoutParams(200, 10);
progressBar.setMax(100);
progressBar.setProgress(getScrollBarValue());
progressBar.setIndeterminate(isIndeterminate());
progressBar.getLayoutParams().width = 200;
progressBar.invalidate();
解決策は、ウィジェットのソースコードをコピーして、欠落したメソッドを実装することだと思います。クレイジーな解決策に見えますが、これを行う方法が必要です。 – Snowwire
ちょうど確認する:あなたは、スピナースタイルではなく、バースタイルを探していますか?おそらく、スタイル/図形がどこに定義されているかを調べ、それをコピーして調整するだけで十分でしょう。 – sstn