【问题标题】:Add a Textview to a FrameLayout in a determined position在确定的位置将 Textview 添加到 FrameLayout
【发布时间】:2012-06-20 02:42:58
【问题描述】:

我正在尝试将textView 添加到frameLayoutTextView 具有 wrap_content 属性,因此它会随着文本的增长而增长。我用这个函数将它添加到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? 中的答案,它们并没有太大帮助:( 主要是导致崩溃..

【问题讨论】:

    标签: android textview android-framelayout


    【解决方案1】:

    试试这个:

    FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT, Gravity.CENTER);
    
    ((FrameLayout) findViewById(R.id.mainLayout)).addView(mEditText, params);
    

    更改Gravity 以满足您的需要。

    顺便说一句,框架布局应该使用fill_parent作为宽度和高度

    【讨论】:

    • 谢谢,这是唯一有效的方法!!将框架布局更改为 fill_parent 对我来说会毁了一些东西,它不会显示此视图下的视图。
    • 使用 match_parent 而不是 fill_parent 更好。
    • 你也可以使用LayoutParams.WRAP_CONTENT作为width属性,以防你的textview有一个小文本。
    【解决方案2】:

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

    android:layout_gravity="center"
    

    android:gravity="center"
    

    【讨论】:

    • 没用,他需要动态插入
    【解决方案3】:

    在你的框架布局中添加android:layout_gravity="center"

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

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

      textview.setGravity(Gravity.center);
      

      xml 的其他设置将重力设置为中心,以便将您显示在中心,如果您使用 centerinparents,它将始终显示在屏幕中心。

      【讨论】:

      • 不起作用。视图仍显示在左上角,但光标现在位于视图中间
      【解决方案5】:

      FrameLayout 属性 android:layout_widthandroid:layout_height 设置为 fill_parent 并设置 TextView 属性 LayoutGravity 。如CenterRightTop

      谢谢

      【讨论】:

        【解决方案6】:

        以编程方式设置重力绝对有效 请在 xml 中将 layout_gravity 设置为正确 TextView.setGravity(Gravity.RIGHT);

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-01-14
          • 1970-01-01
          相关资源
          最近更新 更多