Android Studio布局错误

嘿,我真的需要你的帮助。

我的问题是,Android Studio不会在模拟器或物理设备中正确显示布局。 每当我放置一个textView,按钮等,我想中心它(水平,垂直或两个),我开始模拟器它坚持到左上角。

这是我的代码::

private void firstStage(){
    ViewGroup container = (ViewGroup) findViewById(R.id.container);
    container.removeAllViews();
    container.addView(getLayoutInflater().inflate(R.layout.first_stage, null));
}


private void showHint(){
    ViewGroup container = (ViewGroup) findViewById(R.id.container);
    container.removeAllViews();
    container.addView(getLayoutInflater().inflate(R.layout.first_hint, null));
    firstImage = (ImageView) findViewById(R.id.hintImage);
    firstImage.setImageResource(R.drawable.firsthint);
    Button back = (Button) findViewById(R.id.first_hint_backButton);
    back.setOnClickListener(this);


}

在showHint方法一切工作正常..按钮和imageview在那里我已经设置了它们。

然而,在firstStage方法中,我有一个textView,它总是在左上角,如果我选择了“center”,就像Android Studio突然无法处理重力:中心了。

我尝试创建一个新项目,但错误仍然存​​在。 如果我将textView设置为右侧,然后将其放在右侧的中间,它就可以工作。 但这不是一个长期的解决方案。 你们中有人遇到同样的问题吗?

在你问之前,是的,我已经尝试了所有与“中心”的一切。 在XML文件中,在代码中等等。

也许这也会帮助你::

如果我通过setContentView(R.layout.first_stage)调用布局; 有用。 textView是在那里,我想它是正确的..我只是不知道为什么它不会与ViewGroup的工作,当它适用于我的其他2布局完美?!

这是我的布局代码::

<?xml version="1.0" encoding="utf-8"?>

RelativeLayout xmlns:android =“http://schemas.android.com/apk/res/android”android:layout_width =“match_parent”android:layout_height =“match_parent”

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textAppearance="?android:attr/textAppearanceLarge"
    android:text="@string/first_stage"
    android:id="@+id/textView2"
    android:enabled="true"
    android:layout_centerVertical="true"
    android:layout_centerHorizontal="true" />

/ RelativeLayout的

编辑::

它现在工作! 我将容器从RelativeLayout更改为FrameLayout。 我不知道它为什么现在可以工作,但它的工作原理!

感谢pdegand59的快速帮助,非常感谢。


当膨胀一个视图时,你必须给父亲一个inflater来解析视图的布局参数。

container.addView(getLayoutInflater().inflate(R.layout.first_stage, container, false));

这就是为什么Android Studio在使用null父项进行膨胀时出现警告的原因。

顺便说一句,您可以将充气的视图自动添加到您的视图层次结构中,只需:

getLayoutInflater().inflate(R.layout.first_stage, container, true);

链接地址: http://www.djcxy.com/p/84751.html

上一篇: Android Studio Layout Errors

下一篇: Can the Android Layout folder contain subfolders?