DialogFragmentのサイズを変更するために、OnCreateViewメソッドを使用して次のことを行いました
注: MonoDroidのC#でのコード。生のAndroid用にJavaに簡単に翻訳
public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
base.OnCreateView(inflater, container, savedInstanceState);
View thisView = inflater.Inflate(Resource.Layout.NewContactDialog, container, false);
thisView.Post(() =>
{
ViewGroup.LayoutParams lp = thisView.LayoutParameters;
lp.Width = 500;
thisView.LayoutParameters = lp;
thisView.Invalidate();
}
);
return thisView;
}
このコードは実験によるものです。私が決めたのは、中央に配置されたDialogFragment(デフォルトの動作)を使用し、背景を暗くしないことでした。DFのスタイルをオーバーライドして、既存のテーマに基づいて作成することができます
<style name="MyDialogFragment" parent="android:Theme.Holo.Dialog">
<item name="android:windowIsFloating">true</item>
</style>
または、ゼロから完全にスタイリングします
<style name="MyDialogFragment">
... (set all items, check docs)
</style>
まず、上記のMyDialogFragmentスタイルを使用して、windowIsFloatingをfalseに設定し、効果を確認してください(SetStyleメンバーでテーマをこれに設定するだけです)。
独自のスタイリングとデフォルトのオーバーライドを行う必要があるスタイルとテーマのいくつかの良いリンク:
http://www.therealjoshua.com/2012/01/styling-android-with-defaults/
http://developer.android.com/guide/topics/ui/themes.html/
https://android.googlesource.com/platform/frameworks/base/+/refs/heads/master/core/res/res/values/styles.xml/
https://android.googlesource.com/platform/frameworks/base/+/refs/heads/master/core/res/res/values/themes.xml/
正直なところ、DialogFragmentsとPopupWindowsを操作するのは面倒ですが、これらは実際のGUIの問題を解決する特殊なビューなので、あきらめないでください。さらに情報が必要な場合は、以下のコメントで質問してください(これは答えではないことに気づきました。私はただ助けようとしています、b / c私は今このようなものに取り組んでいます)。