検索

ホームページ  >  に質問  >  本文

android - 开发中进度条的选择

使用Progress控件很方便,但是如果有居中需求的话,某些场景会增加一层布局嵌套
而且每个布局都要书写,很麻烦

而使用ProgressDialog 书写起来很方便,但是某些场景不能很直接的提供正确的上下文.(容器不是activityfragment 时)

各位大哥在实际开发中如何实现进度条的需求的?

//我尝试这样操作的情况,下 在app第一次进入的时候,我点击按钮向容器上添加progressbar的时候,这个progressbar是不会旋转的,卡在界面上
//而关闭这个activity后(app中还有activity存在),再次进入activity 继续添加,这时候progressbar就会旋转了,这是为什么呢?
ProgressBar progressBar = new ProgressBar(this);
ViewGroup decorView = (ViewGroup) getWindow().getDecorView();
FrameLayout.LayoutParams layoutParams = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT, Gravity.CENTER);
progressBar.setLayoutParams(layoutParams);
decorView.addView(progressBar);
ringa_leeringa_lee2771日前535

全員に返信(4)返信します

  • 天蓬老师

    天蓬老师2017-04-18 09:18:17

    これに関して建設的な提案はできません。場合によっては、トラブルを避けるために、ProgressBar の XML インターフェイスを作成し、使用するときにそれをインフレートして、これを BaseActivity に直接挿入します。ロジックは別の層にカプセル化されているため、基本的にいくつかの単純なニーズを満たすことができます。
    さらに複雑にするために、progressBar がユーザーの操作と対話できるようにします。たとえば、編集インターフェイスに画像をアップロードするための入り口がある場合、ユーザーがアップロードを待っている間に、Progress ウィジェットへの送信キーを変更できます。画像を選択した後、ユーザーの操作を妨げるだけでなく、進行状況を効果的に促します。
    ProgressDialog に関しては、次のステップに進む前に特定のファイルをロードする必要がある場合など、論理的な順序が強い場合を除いて、これはブロックしすぎると思います。

    返事
    0
  • PHP中文网

    PHP中文网2017-04-18 09:18:17

    Context を入手できる限り、ProgressDialog

    を使い続けてください。

    Application を例に挙げます:

    1. ダイアログ ポップアップのプロキシとしてアクティビティを作成します

    2. startActivity(Intent)

    返事
    0
  • 天蓬老师

    天蓬老师2017-04-18 09:18:17

    私は実際には、質問にある「コンテキストが正しく提供されていない」がどのようなシナリオなのかという質問に興味があります。質問者は、progressbar がコンテキストを取得できるが、progressdialog が取得できないシナリオに遭遇しましたか?

    返事
    0
  • 巴扎黑

    巴扎黑2017-04-18 09:18:17

    アクティビティまたはフラグメント コンテナではない場合、コンテナは作成時にアクティビティまたはフラグメント内に存在する必要があります。
    そうでない場合は、その親コン​​テナまたは親コンテナがアクティビティまたはフラグメント内に存在する必要があります。 。
    この場合、コンストラクターを介してレベルごとにコンテキストを渡すことができますね。

    返事
    0
  • キャンセル返事