私は非常に単純なレイアウトを持っています:
<?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ファイル内。どうもありがとう!