2017-03-14 1 views
-2

ProgressBarが表示されるかどうかを判断するための条件チェックがあります。Androidの可視性を変更するProgressBar

断片で
<RelativeLayout 
    android:id="@+id/someID" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:gravity="center"> 

    <ProgressBar 
     android:id="@+id/someProgressBar" 
     style="?android:attr/progressBarStyleLarge" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:indeterminate="true" 
     /> 

</RelativeLayout> 

ProgressBar progressBar; 

@Override 
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, 
         @Nullable Bundle savedInstanceState) { 
View root = inflater.inflate(R.layout.some_main_layout, container, false); 
progressBar =(ProgressBar) root.findViewById(R.id.someProgressBar); 
.... 

}

及びIはprogramticallyとプログレスバーの表示を変更しようとするレイアウトがProgressBarRelativeLayout内に含まれている場合以下のように見えますsetVisibility()のような機能:

if(someCondition) 
     progressBar.setVisibility(View.GONE); 
    else 
     progressBar.setVisibility(View.VISIBLE); 

しかし、上記はうまくいかない。そこでxmlレベルでandroid:visibility="gone"を追加して変更を加えて、最初の可視性をGONE状態に設定しましたが、ProgressBarの表示方法をもう一度失いました。

私はあなたの考えをありがとう。

ありがとうございました。

+1

あなたの状態を確認する必要があることを意味します。満足ですか? – Piyush

+0

@ Piyush:私はコードの基本構造を与えたばかりです。私は条件が(デバッグによって)確実に機能することを知っています。 – vardhinisuresh27

+0

@ vardhinisuresh27正しいプログレスバーの表示を設定しているかどうかをチェックし、プログレスバーを 'someProgressBar'として初期化し、' progressBar'を可視に設定しています。グローバル変数としてプログレスバーを変更してみてください。 – Redman

答えて

0

if(someCondition) 
    progressBar.setVisibility(View.INVISIBLE); 
else 
    progressBar.setVisibility(View.VISIBLE); 
+0

これでOPの問題は解決しますか? – Piyush

+1

あなたはあまり変わっていない、それは何の違いを作ることはありません。これを見てください(http://stackoverflow.com/questions/11556607/android-difference-between-invisible-and-gone) – Redman

+0

私は同じ問題を抱えている、相対的なレイアウトがこの問題を作成します。 しかし、それはレイアウトのスペースを占有します。 –

1

あなたは、これはあなたを助けることができる、この希望に試すことができ、以下にあなたのコードを置き換えます。

ProgressBar someProgressBar; 
TextView txtSend; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    txtSend = (TextView) findViewById(R.id.txtSend); 
    someProgressBar = (ProgressBar) findViewById(R.id.someProgressBar); 
    someProgressBar.setVisibility(View.GONE); 

    txtSend.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 

      if (someProgressBar.getVisibility() == View.GONE) { 
       someProgressBar.setVisibility(View.VISIBLE); 
      } else { 
       someProgressBar.setVisibility(View.GONE); 
      } 
     } 
    }); 
+0

@ vardhinisuresh27あなたの問題は解決かどうか? –

0

問題は進行状況バーに間違ったIDを使用していることです。

ProgressBar someProgressBar=(ProgressBar) root.findViewById(R.id.someProgressBar); 

    if(someCondition) 
     someProgressBar.setVisibility(View.GONE); 
    else 
     someProgressBar.setVisibility(View.VISIBLE); 

とそうでない場合は、XMLからの視認性を削除し、それがあるとして、それを維持し、非表示にするdefaultprogressバーにしたいbar.If進歩のためのあなたのXMLコードを変更します。

関連する問題