2011-11-21 21 views
5

480x320 (portre) görünüm için ayarlanmış bir XML dosyasında oluşturulmuş bir RealtiveLayout var. Her şey "daldırma" birimlerinde oluşturulur. Temel olarak, her birinin ekranının dörtte birini kullanan 4 adet metin görünümü içerir. Hepsi layout_marginLeft ve layout_marginTop tarafından konumlandırılmıştır. Uygulama, bu 4 kısa metinden herhangi birine hafifçe dokunabildiğiniz ve diğer 3 boyutunun azalacağı ve görünümün solunda birbiri üzerine hizalanabileceği bir özelliğe sahiptir. Tekrar büyük okumaya dokunun ve tüm 4 başlangıç ​​boyutlarına geri döner.Metin görünümündeki metin Android 3.0'te aşağı doğru kaydırılıyor

uygulama ölçeklendirmez Her şeyden önce, bu yüzden o hesaplamamakta bazı kod yaptı ... ama emülatör android 3.0 veya daha yüksek çalışan değilse -

Bu, tüm farklı cihazlarda ve emülatörü içinde çalışıyor ekran boyutuna göre metin görünümü boyutları ve yazı tipi boyutu. Tüm bunlar güzel çalışır, ancak Android 3.0'da metinler yeniden boyutlandırıldığında komik şeyler olur. Aniden metnin önüne eklenmiş boş bir satır varmış gibi görünüyor, yani sadece görüntülemek istediğim metnin üst kısmını görüyorum.

Metin görünümünün tanımı aşağıda açıklanmıştır. Her okunmanın üstünde şeffaf bir düğme var.

<TextView android:id="@+id/out1" 
android:textStyle="bold" 
android:typeface="serif" 
android:text="@string/Out1_text" 
android:layout_height="80dip" 
android:layout_width="161dip" 
android:layout_marginLeft="54dip" 
android:layout_marginTop="57dip" 
android:scrollHorizontally="true" 
android:gravity="left|top" 
android:maxLines="1" 
android:background="#7f7f7f" 
android:textColor="@android:color/white"/> 
<ImageButton android:id="@+id/BigButton1" 
android:background="@drawable/transparent" 
android:layout_marginLeft="54dp" 
android:layout_marginTop="57dp" 
android:layout_width="161dp" 
android:layout_height="80dp"/> 

Ben metninin yalnızca bir satır emin olmak için farklı şeyler denedim, ben (o değil istediğim bu olsa bile) sol üste doğru yerçekimi kurdum, ama aynı şey oluyor tutun.

RelativeLayout.LayoutParams params1 = new RelativeLayout.LayoutParams(NewOut1Width, NewOut1Height); 
params1.setMargins(NewOut1X, NewOut1Y, 0, 0); 
big1Button.setLayoutParams(params1); 
out1_txtView.setLayoutParams(params1); 
out1_txtView.setTextSize(NewOut1FontSize); 

"komik" şey başlangıçta benim yeniden boyutlandırma rutin arama ve ben bir kez her şey yolunda görünüyor olmasıdır:

boyutunu ve TextView yazı tipini ve bu kodla düğme boyutunu değiştirmek bir okuma büyük yapılmış ve daha sonra standart boyuta geri dönüyoruz (ilk gösterim için aynı değerlerle birlikte, büyük olan metin görünümünün metni, metin görünümünde bir satır aşağı taşındı.

Herhangi biri hakkında bir ipucu var mı Neler oluyor?

EK BİLGİ Bir getLineBounds eklemeyi denedim ve textSize arttıkça textView'un taban çizgisinin arttığını, ancak textSize azaldığında tekrar düşmediğini gösteriyor. Yerçekimi üstünde, merkezde veya altta olsam farketmez.

+0

Aynı problem var. TextView'um bir arka plan resmi vardı. TextViews, göreceli düzende bir tabloda bulunur. Resmi kaldırdım ve sorun ortadan kalkmış gibi görünüyor, ama henüz emin olamıyorum. Birkaç hafta boyunca her şey iyi çalışıyordu, o zaman sorun aniden, küçük, ilgili olmayan bir değişimin düzeninin başka bir kısmına geçmesinden sonra ortaya çıktı (bir düğmeden üstteki öğeyi bir ImageView'a değiştirdim). –

cevap

0

Sadece bu deneyin:

5DP ve wrap_content için layout_width söylemek TextView arasında minWidth ayarlayın. Bu, her bir textView'in mutlaka 5dp'yi kapsayacağı anlamına gelir. Ayrıca, minWidth değerini verdiğinizde yerçekimini eklemeniz gerekmez. Ve, textView'ın genişliğini ve yüksekliğini statik değere ayarlamayın. Şunun gibi bir şey deneyin:
RelativeLayout.LayoutParams relativeLayoutParams = new RelativeLayout.LayoutParams(width, height); 
textView.setLayoutParams(relativeLayoutParams); 
İlgili konular