我有一个非常简单的布局:
<?xml version="1.0" encoding="utf-8"?>
<!-- -->
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/dialog_progress"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:background="@drawable/b"
android:scaleType="fitXY" >
<ProgressBar
android:id="@+id/progressD"
style="@android:style/Widget.ProgressBar.Horizontal"
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_centerHorizontal="true"
android:layout_marginBottom="10dp"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:layout_marginTop="10dp"
android:progress="0" />
<TextView
android:id="@+id/numberO"
style="@android:style/TextAppearance.Large"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/progressD"
android:layout_centerHorizontal="true"
android:layout_marginTop="10dp"
android:textColor="#FFFFFF"
android:textStyle="bold" />
</RelativeLayout>
我像这样膨胀它:
public class MyFragment extends
SherlockDialogFragment {
static MyFragment newInstance() {
MyFragment theDialog = new MyFragment();
return theDialog;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View v = inflater.inflate(
R.layout.dialog_show_progress_during_connection_test,
container, false);
这就是我展示它的方式:
public void showIt(final Device device) {
//first create the DialogFragment to show the progress
theDialog = theDialog
.newInstance();
theDialog.show(getSupportFragmentManager(),
"dialog");
getSupportFragmentManager().executePendingTransactions();
}
片段相当窄 - 大约是屏幕宽度的 1/3,即使我明确有“match_parent”
奇怪的是,在运行 Android 2.1 的旧 Android 手机上,它几乎膨胀到屏幕的宽度——而在所有其他运行 Android 4+ 的手机上,它是窄的。
我检查了容器的值,在所有情况下它都是空的。(不应该是父母吗?)
夏洛克会不会有问题?
我什至将宽度明确设置为 1000dp,但新片段仍然很窄。更改为 LinearLayout 也无济于事。
任何想法可能是什么原因?
我让它变得更宽的唯一方法是在所有地方设置特定的宽度,如“500dp”!在这个 xml 文件中。非常感谢!