gpt4 book ai didi

android - Inflater inflate 但高度很小(看起来像 wrap_content 需要 fill_parent)

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:58:56 27 4
gpt4 key购买 nike

我有布局,我想膨胀它

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<EditText
android:id="@+id/editText1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
</EditText>

</LinearLayout>

喜欢

    LinearLayout ll=(LinearLayout)findViewById(R.id.llContainer);
View view;
LayoutInflater inflater = (LayoutInflater) this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
view = inflater.inflate(R.layout.question_free_text, null);
ll.addView(view);

ll在哪里

<LinearLayout
android:id="@+id/llContainer"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_marginTop="20dp"
android:layout_marginBottom="20dp"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
>
</LinearLayout>

在其他 xml 中,但问题是当它膨胀时显示但高度很大(fill_parent,它看起来像 wrap_content,但布局中没有 wrap_content)。谁能帮帮我?

最佳答案

正如 Yashwanth Kumar 在评论中正确提到的那样,膨胀方法的第二个参数应该是将插入新 View 的 Root View :

LinearLayout ll = (LinearLayout) findViewById(R.id.llContainer);
View view;
LayoutInflater inflater = (LayoutInflater) this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
view = inflater.inflate(R.layout.question_free_text, ll);

如果在 inflate-call 中提供了 Root View ,则 LayoutInflator 会调用此 Root View 的 generateLayoutParams(ViewGroup.LayoutParams p) 方法来获取一些 LayoutParams(基本上包含有关大小的信息view can/should be) 将传递给新 View 。

请注意,如果您提供 Root View ,膨胀 View 将通过 root.addView(View child, LayoutParams params) 自动添加到 Root View 。

您还可以将第三个参数传递给 inflate-method (boolean attachToRoot),如果此值为 false,则新 View 不会自动添加到 Root View ,但 LayoutParams 仍使用 setLayoutParams(params) 设置。如果您想手动将 View 添加到 Root View (例如,在特定位置/索引处),则可以使用它:

LinearLayout ll = (LinearLayout) findViewById(R.id.llContainer);
View view;
LayoutInflater inflater = (LayoutInflater) this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
view = inflater.inflate(R.layout.question_free_text, ll, false); // the LayoutParams of view are set here
ll.addView(view, 2);

关于android - Inflater inflate 但高度很小(看起来像 wrap_content 需要 fill_parent),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7752642/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com