2016-04-12 16 views
0

olarak ayarlandığında, görünümleri hizalamanın daha iyi yolu Burada bir sorunum var. 2 adet metin görünümü olan basit bir dikey doğrusal düzenim var. Alt metin görünümü, sadece bir web servis çağrısından gelen veriler varsa görüntülenir.Bir Görünüm GONE

Şu anda ne olacağı varsayılan olarak android:visibility="gone" olarak ayarlanmış ve bunun için veri olduğunda, android:visibility="visible" olarak ayarlıyorum. Sahip olduğum sorun, Alt TextView artık görünmediğinde görünümü merkeze hizalamak için TextView'ı kullanmam gerekiyor. Programlama düzenini her zaman düzenleyebileceğimi biliyorum ama bunu yapmak için daha iyi bir yol olduğunu mu düşünüyordum? Her iki görünümler görülebilir Örneğin nasılsa XML

Görünüm: görünüm alt Görünüm

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

Ben Görünüm istiyorum ne GİTTİ olarak ayarlandığında benziyor ne

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

Alt TextView'in veri olmadığı ve GONE:

Teşekkürler

+1

layoutParams öğesini programmatic olarak layoutParams.Gravity = Gravity.CENTER olarak ayarlayabilirsiniz. – Opiatefuchs

+0

Evet, bunu biliyorum, bunu yapmanın başka bir yolu olup olmadığını merak ediyordum? – x10sion

+0

da, bir relativeLayout kullanabilir ve bu metnin özniteliğini layout_centerInParent = "true" olarak ayarlayabilirsiniz. – Opiatefuchs

cevap

1

Program aracılığıyla yapabilirsiniz.

Farz edin ki webservices'ten hiç veri yok.

Textview tvTop; 
Textview tvBottom; 

görünümü başlatılıyor sonra

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

Umarım yardımcı olur kontrol edin.

+0

Teşekkürler, sanırım programatik olarak bunu yapmanın tek yolu ...... daha iyi bir yol olup olmadığını merak ediyordum – x10sion

İlgili konular