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」を持っているにもかかわらず、画面幅の約1/3

不思議なことに、Android 2.1を搭載した古いAndroidスマートフォンでは、画面のほぼ幅まで膨らみますが、Android4以降を実行している他のすべてのスマートフォンでは幅が狭くなっています。

コンテナの値を確認しましたが、すべての場合でnullです。(それは親ではないでしょうか?)

Sherlockに問題がありますか?

幅を明示的に1000dpに設定しましたが、新しいフラグメントは狭いままです。また、LinearLayoutに変更しても効果はありません。

これの理由は何でしょうか?

これを広くする唯一の方法は、すべての場所で「500dp」のような特定の幅を設定することでした。このxmlファイル内。どうもありがとう!

4

1 に答える 1

0

一部の属性が layout_width-attribute をオーバーライドできることを経験しました。RelativeLayout から layout_centerHorizo​​ntal、layout_centerVertical、scaleType を削除してみてください。私が見る限り、それらはいずれの目的も果たさない。

于 2012-10-18T07:08:29.057 に答える