2012-10-18 58 views
1

我有一個非常簡單的佈局:爲什麼這個佈局沒有膨脹到全寬?

<?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(); 
    } 

片段比較狹窄 - 約三分之一的屏幕寬度,即使我明確有「match_parent」

奇怪的是,Android 2.1上的老式Android手機幾乎將屏幕寬度膨脹 - 而在所有其他運行Android 4+的手機上,它都很窄。

我檢查了容器的值,它在任何情況下都是null。 (不應該是父母嗎?)

Sherlock會有問題嗎?

我甚至明確地將寬度設置爲1000dp,但新的片段仍然很窄。 同時更改爲LinearLayout並沒有幫助。

任何想法可能是什麼原因呢?

我得到這個更廣泛的唯一方法是在所有地方設置特定的寬度像「500dp」!在這個xml文件中。 非常感謝!

+0

你的主機活動看起來如何?你如何添加片段? –

+0

您正在替換或添加片段的容器的寬度可能較小 –

+0

@ Rolf Smit請參閱我的編輯 - 我只是實例化它,並且主機活動填充完整寬度 – user387184

回答

0

我已經體會到一些屬性可以覆蓋layout_width-attribute。嘗試從您的RelativeLayout中移除layout_centerHorizo​​ntal,layout_centerVertical和scaleType。據我所知,他們無論如何都沒有任何目的。

+0

謝謝,我刪除了它們 - 但不幸的是它沒有改變任何東西... – user387184

+1

那爲什麼讓它成爲答案? –