gpt4 book ai didi

android - RelativeLayout 对齐规则在 DialogFragment 中不起作用

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

我有一个关于 RelativeLayout 的对话框。它在普通 Activity 中正常工作,但是当我决定将它移到 DialogFragment 中时,大多数对齐规则都停止工作了。这是布局:

<?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"
android:minHeight="250dp" >

<TextView
android:id="@+id/label_copyright"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:layout_marginTop="20dp"
android:text="Copyright (c) 2013 Copyright"
android:textSize="8dp" />

<TextView
android:id="@+id/label_version"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_above="@+id/label_copyright"
android:layout_marginTop="2dp"
android:text="@null" />

<TextView
android:id="@+id/label_app_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/label_version"
android:layout_centerHorizontal="true"
android:layout_marginBottom="2dp"
android:text="Application Name"
android:textSize="25dp" />


<ImageView
android:id="@+id/image_app_logo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/label_app_name"
android:layout_centerHorizontal="true"
android:layout_marginBottom="16dp"
android:src="@drawable/field_public_required" />


<TextView
android:id="@+id/label_description"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_below="@+id/label_copyright"
android:layout_marginTop="30dp"
android:gravity="center"
android:autoLink="web"
android:text="application description with more details" />


</RelativeLayout>

这是它应该如何工作的,它确实在 Activity 中工作(Eclipse 图形布局屏幕截图):

enter image description here

下面是运行带有 fragment 的应用程序时的样子:

enter image description here

显然,只有第一个 View 按预期居中,而所有其他 View 都被推到了顶部。无论我在布局中指定哪个 minHeight,行为始终相同。

实例化对话框的代码非常简单:

@Override
public Dialog onCreateDialog(Bundle savedInstanceState)
{
LayoutInflater inflater = getActivity().getLayoutInflater();
View view = inflater.inflate(R.layout.about, null);

try
{
TextView t = (TextView)view.findViewById(R.id.label_version);
t.setText(getActivity().getPackageManager().getPackageInfo(getActivity().getPackageName(), 0).versionName);
}
catch(NameNotFoundException e)
{
}

return new AlertDialog.Builder(getActivity())
.setView(view)
.setTitle(R.string.about)
.setPositiveButton(R.string.ok,
new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialog, int whichButton)
{
}
}
)
.create();
}

它有什么问题以及如何解决它?

最佳答案

我们有同样的错误。我们最终做了一些非常棘手的事情来让它工作:

<LinearLayout android:layout_width="fill_parent"
android:layout_height="fill_parent">
<RelativeLayout android:layout_width="fill_parent"
android:layout_height="fill_parent">
<EditText android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true"
android:id="@+id/layout_form_field">
<Button android:layout_below="@id/layout_form_field"/>
</RelativeLayout>
</LinearLayout>

基本上,只需将 RelativeLayout 嵌套在 LinearLayout 中...#silly

关于android - RelativeLayout 对齐规则在 DialogFragment 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20329794/

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