[解決済み] AndroidにおけるフルスクリーンDialogFragment
質問
ほぼフルスクリーンでDialogFragmentを表示させようとしています。しかし、どうにもこうにもうまくいきません。
フラグメントを表示する方法は、アンドロイドの開発者向けドキュメントからそのまま引用しています。
FragmentManager f = ((Activity)getContext()).getFragmentManager();
FragmentTransaction ft = f.beginTransaction();
Fragment prev = f.findFragmentByTag("dialog");
if (prev != null) {
ft.remove(prev);
}
ft.addToBackStack(null);
// Create and show the dialog.
DialogFragment newFragment = new DetailsDialogFragment();
newFragment.show(ft, "dialog");
私は素朴に、フラグメントのRelativeLayoutをfill_parentに設定し、いくつかのminWidthとminHeightを設定してみました。
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:minWidth="1000px"
android:minHeight="600px"
android:background="#ff0000">
私は、DialogFragmentが画面の大部分を埋めることを期待しています。しかし、縦方向にはリサイズできるようですが、横方向にはある一定の幅までしかリサイズできないようです。
また、ここで提案されているように、コードでウィンドウの属性を設定することも試みました。 http://groups.google.com/group/android-developers/browse_thread/thread/f0bb813f643604ec . しかし、これも役に立ちませんでした。
私はAndroidがダイアログをどのように扱うかについて、おそらく何か誤解しているようです。どうしたらこのようなことができるのでしょうか?私の目標に到達するための別の方法はありますか?
Android端末です。
Asus EeePad Transformer
アンドロイド 3.0.1
更新しました。 今は、フラグメントに以下のコードを入れて、なんとかフルスクリーンにすることができました。
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setStyle(STYLE_NO_FRAME, android.R.style.Theme_Holo_Light);
}
残念ながら、これは私が望むものとは全く違います。背景を表示するために、ダイアログの周りに小さなパディングが必要なのは確かです。
そのためのアイデアはありますか?
どのように解決するのですか?
に切り替えてみてください。
LinearLayout
の代わりに
RelativeLayout
. テスト時は3.0のHoneycomb apiをターゲットにしていました。
public class FragmentDialog extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button button = (Button) findViewById(R.id.show);
button.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
showDialog();
}
});
}
@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
}
void showDialog() {
FragmentTransaction ft = getFragmentManager().beginTransaction();
DialogFragment newFragment = MyDialogFragment.newInstance();
newFragment.show(ft, "dialog");
}
public static class MyDialogFragment extends DialogFragment {
static MyDialogFragment newInstance() {
MyDialogFragment f = new MyDialogFragment();
return f;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.fragment_dialog, container, false);
return v;
}
}
}
と、その レイアウト : fragment_dialog.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:minWidth="1000dp"
android:minHeight="1000dp">
</LinearLayout>
main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#ffffff">
<Button android:id="@+id/show"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="0"
android:text="show">
</Button>
</LinearLayout>
関連
-
Gradle の同期に失敗しました。com.android.tools.build:gradle が見つかりませんでした。
-
アプリはGoogle検索でインデックスされません Androidmanifestのクソみたいな黄色い警告
-
アプリの実行エラー。ターゲットデバイスが見つからない問題
-
Android.support.v7.widget.Toolbar が見つかりませんでした。
-
[解決済み] Androidのソフトキーボードをプログラムで閉じる/隠すにはどうすればよいですか?
-
[解決済み] Androidでアクティビティ起動時にEditTextにフォーカスが当たらないようにする方法
-
[解決済み] Androidの「コンテキスト」とは何ですか?
-
[解決済み] EclipseのAndroidプラグインで "Debug certificate expired "エラーが発生する。
-
[解決済み] Androidで画面の大きさをピクセル単位で取得する方法
-
[解決済み】Android UserManager.isUserAGoat()の正しい使用例?)
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
java.lang.NullPointerException: NULLオブジェクト参照で仮想メソッド......を呼び出そうとしました。
-
Android.mk:7: *** セパレータがありません。
-
IllegalStateException。ArrayAdapter は、リソース ID が TextView である必要があります。
-
ライブラリをモジュールとしてインポートする際にエラーが発生しました。Error:A problem occurred configuring project ':library'.
-
エラータイプ 3 タイプエラー, Error: アクティビティクラス{}が存在しません。アクティビティ起動時のエラー 解決方法
-
repo: コマンドが見つかりません
-
アンドロイドリストビュー
-
アンドロイドスタジオ学習入門
-
AndroidStudioのショートカット 検索/置換
-
Android studio 制約レイアウト ConstraintLayout