2012-06-18 63 views
7

我正在尝试将textView添加到frameLayoutTextView具有wrap_content属性,所以它在文本增长时增长。我也有此功能添加到FrameLayout将Textview添加到确定位置的FrameLayout中

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

这是框架布局的XML:

<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的总是出现在屏幕的左上角。我想把它放在中间或顶部中间。如何才能做到这一点?
我看了看在How can I dynamically set the position of view in Android?的答案,他们也没有太大的帮助:(主要是由于崩溃..

回答

15

试试这个:

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

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

变化Gravity,以满足您的需要

BTW,框架布局应该使用fill_parent的宽度和高度

+0

谢谢,这是唯一的工作! 将框架布局更改为fill_parent将我的东西废弃,但它不显示在此视图下的视图。 –

+0

而不是fill_parent更好地使用match_parent。 – drdrej

+0

如果你的textview有一个小文本,你也可以在'width'属性中使用'LayoutParams.WRAP_CONTENT'。 –

0

尝试重力或布局重力到您的Framelayout或Textview。它使您的布局中心的屏幕。使用这样的,

android:layout_gravity="center" 

android:gravity="center" 
+1

没有帮助,他需要动态插入 – xandy

0

您可以通过文本的设置重力尝试使用它喜欢 -

textview.setGravity(Gravity.center); 

othervise通过xml集重力中心,以便它会在中心显示你,如果你使用centerinparents,它会一直显示在屏幕的中心。

+0

不起作用。该视图仍然出现在左上角,但光标现在在视图中间 –

0

设置FrameLayout性能android:layout_widthandroid:layout_heightfill_parent并设置TextView属性LayoutGravity。如Center,RightTop

感谢

0

在你的框架布局

<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

没有改变任何东西.. :( –

0

添加android:layout_gravity="center"设置重力编程肯定工程 请将layout_gravity向右的XML TextView.setGravity(Gravity.RIGHT);

相关问题