Add a Textview to a FrameLayout in a determined po

2019-02-17 03:12发布

I'm trying to add a textView to a frameLayout. The TextView has wrap_content properties, so it grows when the text grows. I'm adding it to a FrameLayout with this function:

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

This is the xml of the frame layout:

<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>

The textView always appears in the top left corner of the screen. I'd like to position it in the middle, or top middle. How can this be done?
I looked over the answers in How can I dynamically set the position of view in Android? and they weren't much help :( Mainly caused crashes..

6条回答
Melony?
2楼-- · 2019-02-17 03:38

Setting the gravity programatically definitely works Please set the layout_gravity to right in the xml TextView.setGravity(Gravity.RIGHT);

查看更多
爷、活的狠高调
3楼-- · 2019-02-17 03:39

Try this:

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

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

Change Gravity to suit your need.

BTW, the frame layout should use fill_parent for width and height

查看更多
该账号已被封号
4楼-- · 2019-02-17 03:44

Try to gravity or Layout gravity to your Framelayout or the Textview. It makes your Layout to the center of the screen. Use like this,

android:layout_gravity="center"

or

android:gravity="center"
查看更多
戒情不戒烟
5楼-- · 2019-02-17 03:50

Set FrameLayout properties android:layout_width and android:layout_height to fill_parent and also set TextView property LayoutGravity . such as Center, Right or Top.

Thanks

查看更多
劳资没心,怎么记你
6楼-- · 2019-02-17 03:51

Add android:layout_gravity="center" in your frame layout

<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>
查看更多
趁早两清
7楼-- · 2019-02-17 03:51

you can try it by set the gravity of text use it like-

textview.setGravity(Gravity.center);

othervise by xml set gravity to center so it will display you in center and if you'll use centerinparents so it will always apperas at the center of screen.

查看更多
登录 后发表回答