2012-06-18 35 views
7

Tôi đang cố gắng thêm textView vào frameLayout. Các TextViewwrap_content thuộc tính, do đó, nó phát triển khi văn bản phát triển. Tôi thêm nó vào một FrameLayout với chức năng này:Thêm một Textview vào FrameLayout ở một vị trí xác định

((FrameLayout) findViewById(R.id.mainLayout)).addView(mEditText); 

Đây là xml của cách bố trí khung:

<FrameLayout 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+id/mainLayout" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content"> 
</FrameLayout> 

TextView luôn xuất hiện ở góc trên bên trái của màn hình . Tôi muốn đặt nó ở giữa, hoặc ở giữa. Điều này có thể giải quyết như thế nào?
Tôi nhìn qua các câu trả lời trong How can I dynamically set the position of view in Android? và họ không thể giúp ích nhiều :(tai nạn chủ yếu gây ra ..

Trả lời

15

Hãy thử điều này:.

FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT, Gravity.CENTER); 

((FrameLayout) findViewById(R.id.mainLayout)).addView(mEditText, params); 

Thay đổi Gravity cho phù hợp với nhu cầu của bạn

BTW, bố cục khung phải sử dụng fill_parent cho chiều rộng và chiều cao

+0

Cảm ơn, đây là điều duy nhất hoạt động !! Thay đổi bố cục khung thành fill_parent đổ nát nội dung cho tôi, nó không hiển thị các chế độ xem trong chế độ xem này. –

+0

thay vì fill_parent tốt hơn để sử dụng match_parent. – drdrej

+0

Bạn cũng có thể sử dụng 'LayoutParams.WRAP_CONTENT' cho thuộc tính' width' trong trường hợp textview của bạn có một văn bản nhỏ. –

0

Cố gắng hấp dẫn hoặc Bố cục trọng lực cho Framelayout hoặc Textview của bạn. màn. Sử dụng như thế này,

android:layout_gravity="center" 

hoặc

android:gravity="center" 
+1

không giúp được gì, anh ta cần chèn động – xandy

0

bạn có thể thử nó bằng cách thiết lập mức độ nghiêm trọng của văn bản sử dụng nó như-

textview.setGravity(Gravity.center); 

othervise bởi xml bộ trọng lực để trung tâm nên nó sẽ hiển thị bạn ở giữa và nếu bạn sẽ sử dụng centerinparents để nó sẽ luôn luôn apperas ở trung tâm của màn hình.

+0

Không hoạt động. Chế độ xem vẫn xuất hiện ở trên cùng bên trái, nhưng con trỏ hiện đang ở giữa chế độ xem –

0

Set FrameLayout tính android:layout_widthandroid:layout_height để fill_parent và cũng đặt TextView tài sản LayoutGravity. chẳng hạn như Center, Right hoặc Top.

Cảm ơn

0

Thêm android:layout_gravity="center" trong cách bố trí khung hình của bạn

<FrameLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/mainLayout" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_gravity="center" > 
</FrameLayout> 
+0

không thay đổi bất cứ điều gì .. :( –

0

Thiết mức độ nghiêm trọng programatically chắc chắn công trình Hãy đặt layout_gravity sang phải trong xml TextView.setGravity (Gravity.RIGHT);

Các vấn đề liên quan