2016-04-12 5 views
0

私はここで少し騒ぎがあります。私は2つのテキストビューがある単純な垂直線形レイアウトを持っています。下部のテキストビューは、Webサービスコールからのデータがある場合にのみ表示されます。ビューがGONEに設定されているときのビューの整列の改善方法

現在、デフォルトではandroid:visibility="gone"に設定されており、データがある場合はandroid:visibility="visible"に設定されています。私が持っている問題は、ボトムTextViewが見えなくなったときに、ビューの中心を揃えるためにTextViewをトップにする必要があることです。私はいつもレイアウトのパラメータなどをプログラムで設定できると知っていますが、私はこれを行うための良い方法があると考えていましたか?たとえば、何とか両方のビューが表示されているXML

ビューで:底面図は、私はビューをしたいと思い何

GONE
|--------LinearLayout--------| 
|   TextView   | 
|       | 
|       | 
|----------------------------| 

に設定されているときにビューがどのように見えるか

|--------LinearLayout--------| 
|  TextView   | 
|  TextView   | 
|       | 
|----------------------------| 

下端のTextViewにデータがなく、GONEに設定されているように見えます。

|--------LinearLayout--------| 
|       | 
|  TextView   | 
|       | 
|----------------------------| 

ありがとう

+1

layoutParams.Gravity = Gravity.CENTERにlayoutParamsをプログラムで設定できます。 – Opiatefuchs

+0

いや、私はそれについて知っている、私はちょうどこれを行うための他の方法があったのだろうか? – x10sion

+0

また、relativeLayoutを使用して、このtextViewの属性をlayout_centerInParent = "true"に設定することもできます。 – Opiatefuchs

答えて

1

これはプログラムによって行うことができます。

ウェブサービスからのデータがない場合を考えてみましょう。あなたは

if(there is no data from webservices){ 
tvBottom.setVisibility(View.GONE); 
tvTop.setLayoutParams(new TableLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, 1f)); 
} 

をチェックビューを初期化した後

Textview tvTop; 
Textview tvBottom; 

はそれに役立つことを願っています。

+0

ありがとう、私はプログラムでこのことを行うための唯一の方法だと思っています......もっと良い方法があるのだろうか? – x10sion

関連する問題