问题
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..
回答1:
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
回答2:
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"
回答3:
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>
回答4:
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.
回答5:
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:
Setting the gravity programatically definitely works Please set the layout_gravity to right in the xml TextView.setGravity(Gravity.RIGHT);
来源:https://stackoverflow.com/questions/11077602/add-a-textview-to-a-framelayout-in-a-determined-position