2011-07-19 30 views
1

プログレスサークルをTextViewにアタッチして表示する必要がありますが、他の画面コンポーネントをタップするのに抵抗しないようにする必要があります。この進捗状況ダイアログをテキストビューに添付して表示

enter image description here

どれ手がかりのようなもの?

+0

progressdialogプログレスバーとではありません。 –

+0

絶対に画面の上に表示され、他のコンポーネントをブロックするのではなく、単にテキストビューに表示したいだけです。 –

答えて

0

このようなことはTextView IMOだけではできません。このような効果を模倣する最善の方法は、TextviewとImageview(水平方向)でLinearLayoutを持つことだと思います。イメージビューを最初は見えないようにする。条件付きで画像ビューの表示を切り替えます。つまり、アクションが開始されると、可視性を設定し、アクションが終了したら、再び非表示にします。アイデアが得られたら幸いです。でframeLayoutように、外側のレイアウトを設定

0

enter image description hereのTextView /のEditTextとプログレスバーが(layout gravity "Right")

<FrameLayout 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" > 

    <TextView 
     android:id="@+id/TextView1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:paddingRight="24dp" 
     android:text="Getting Location" 
     android:textAppearance="?android:attr/textAppearanceSmall" 
     android:textSize="12dp" > 

     <requestFocus /> 
    </TextView> 

    <ProgressBar 
     android:id="@+id/ProgressBar01" 
     style="?android:attr/progressBarStyleSmall" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="right|center_vertical" 
     android:layout_marginRight="4dp" /> 
</FrameLayout> 

<FrameLayout 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_marginTop="16dp" > 

    <EditText 
     android:id="@+id/EditText1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:paddingRight="24dp" 
     android:text="http://example.com" 
     android:textAppearance="?android:attr/textAppearanceSmall" 
     android:textSize="12dp" /> 

    <ProgressBar 
     android:id="@+id/progressBar1" 
     style="?android:attr/progressBarStyleSmall" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="right|center_vertical" 
     android:layout_marginRight="4dp" /> 
</FrameLayout> 
1

を設定内で、私はこのような何かを行っているが、それは同様にアイコンが含まれています。これを探している人のための準備ができたコードがあります。

レイアウトの使用では

<LinearLayout 
    android:id="@+id/my_element" 
    android:layout_width="match_parent" 
    android:layout_marginLeft="20dp" 
    android:layout_marginTop="5dp" 
    android:layout_height="20dp"> 

    <ImageView 
     android:layout_width="20dp" 
     android:layout_height="20dp" 
     android:src="@drawable/ic_action_place"/> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="20dp" 
     android:textColor="@color/black" 
     android:textSize="12sp" 
     android:gravity="center_vertical" 
     android:text=""/> 

    <ProgressBar 
     android:layout_width="wrap_content" 
     android:layout_height="20dp" 
     style="@android:style/Widget.ProgressBar.Small" 
     android:layout_marginRight="5dp" /> 

</LinearLayout> 

これはTextViewに(ちょうど蹴りのための前にある追加アイコン)と小型スピニングプログレスバーが含まれているのLinearLayoutです。アクティビティ/フラグメントで

対応のonCreate/onCreateView AsyncTaskのonPostExecuteで

llMyElement = (LinearLayout) view.findViewById(R.id.my_element); 

を使用するか、プロセス・コールsetLoadingText(llMyElement, “Some Result");

後にテキストを設定したい場所に

LinearLayout llMyElement; 

を追加

アクティビティクラスまたはUtilクラスなどの適切な場所にテキストを設定するこのヘルパ関数を含めます。

public void setLoadingText(LinearLayout layout, String text) 
{ 
    int count = layout.getChildCount(); 
    for(int i = 0; i < count; i++) 
    { 
     if(layout.getChildAt(i) instanceof TextView) 
      ((TextView) layout.getChildAt(i)).setText(text); 
     if(layout.getChildAt(i) instanceof ProgressBar) 
      layout.getChildAt(i).setVisibility(View.GONE); 
    } 
} 

これはそれです..お楽しみください!

0

FrameLayout内に置く:

<FrameLayout 
    android:layout_width="0dp" 
    android:layout_height="100dp" 
    android:layout_weight="1"> 
    <TextView 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:background="@drawable/my_info_card" 
     android:gravity="center" 
     android:layout_gravity="center"/> 
    <ProgressBar 
     android:id="@+id/progress_bar" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     style="@android:style/Widget.ProgressBar.Small" 
     android:layout_gravity="center"/> 
</FrameLayout> 

ProgressBarTextViewの上に表示されます。この道を。確かに、いつでもProgressBarを非表示にすることができます。setVisibility()。各レイアウトの重力をandroid:layout_gravityで設定することもできます。それはこのようになります上記の例では:あなたが探しているものを

ProgressBar over TextView

関連する問題