为什么这种布局没有膨胀到全宽?

时间:2012-10-18 06:57:33

标签: android layout

我有一个非常简单的布局:

<?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+的手机上它都很窄。

我检查了容器的值,在所有情况下都为null。 (不应该是父母吗?)

Sherlock会出现问题吗?

我甚至将宽度显式设置为1000dp,但新片段仍然很窄。 更改为LinearLayout也无济于事。

任何想法可能是什么原因?

我让这个变宽的唯一方法是在所有地方设置像“500dp”这样的特定宽度!在这个xml文件中。 非常感谢!

1 个答案:

答案 0 :(得分:0)

我经历过一些属性可以覆盖layout_width-attribute。尝试从RelativeLayout中删除layout_centerHorizo​​ntal,layout_centerVertical和scaleType。据我所知,他们无论如何都没有任何目的。