2012-05-01 8 views
4

私はすでに(stackoverflowとネット上で)見つけることができるすべてのものを試しましたが、何とか私のダイアログをフルスクリーンに設定できません。それにはテキストビューを含むスクロールビューがあり、テキストビューにテキストがあまりないときは、スクロールビューはフルスクリーンではありません。テキストがあまり表示されない場合でも、どのように強制的に全画面表示にすることができますか?アンドロイドのダイアログを全画面にするにはどうしたらいいですか?

私はこのようなダイアログを作成します:

final TextView box; 
    final Dialog  info = new Dialog(cx); 
    final ScrollView scroll; 

    info.setContentView(R.layout.dialoginfo); 
    info.setTitle("Info"); 
    info.setCancelable(true); 
    info.getWindow().setFlags(LayoutParams.FLAG_FULLSCREEN, LayoutParams.FLAG_FULLSCREEN); 

    scroll = ((ScrollView) info.findViewById(R.id.scrollviewinfo)); 
    scroll.setPersistentDrawingCache(ScrollView.PERSISTENT_NO_CACHE); 
    scroll.setScrollbarFadingEnabled(false); 
    box = (TextView) info.findViewById(R.id.infotext); 
    box.setText(text); 
    info.show(); 

これはxmlです:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical" 
    android:id="@+id/infolayout" 
> 

    <ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/ImageView01" 
     android:layout_weight="1.0" 
     android:id="@+id/scrollviewinfo"> 

     <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:orientation="vertical" 
      android:id="@+id/infolayout2"> 

      <TextView android:layout_margin="5dip" android:layout_width="fill_parent" android:layout_height="wrap_content" 
       android:id="@+id/infotext" 
       android:textSize="8sp" 
       android:text=""/> 

     </LinearLayout> 

    </ScrollView> 


</LinearLayout> 

答えて

6

それはあなたのScrollViewはwrap_contentに設定され、その高さを持っているように、私は最初fill_parentとそれを交換してみたい見えます。

How can I get a Dialog style activity window to fill the screen?

私はsetFlags()方法を使ったことがないので、これはあなたに同じ結果を与えることがあります。ここでは

はあなたを助けるかもしれないいくつかの他のリソースです。あなたが最初の答えはここに記述として、あなたは、レイアウトのparamsのインスタンスを作成することができ、高さをより正確に制御を望んでいた場合は基本的に、

info.getWindow().setLayout(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);

また

info.getWindow().setFlags(LayoutParams.FLAG_FULLSCREEN, LayoutParams.FLAG_FULLSCREEN);

を交換してみてください。

How to make an alert dialog fill 90% of screen size?

することができますまた、このコードを使用して画面サイズを取得することもできます(フルスクリーンよりもわずかに小さくしたい場合)。

Display display = ((WindowManager) getSystemService(WINDOW_SERVICE)).getDefaultDisplay(); 
int width = display.getWidth(); 
int height = display.getHeight(); 

現在の画面サイズを取得する方法は他にもたくさんありますが、これは単なる一例です。がんばろう! RelativeLayoutの代わりに、リニアレイアウトにあなたのダイアログカスタムレイアウトを包む

+1

"info.getWindow()。setLayout(LayoutParams.FILL_PARENT、LayoutParams.FILL_PARENT);"それをしました、ありがとうございます:-)。 – HardCoder

0

は、あなたが "match_parent" にScrollViewの設定layout_heightを試してみました(そして、あなたはへのLinearLayoutを設定することができます"match_parent"も必要だとは思いますが)?私はそれが "wrap_content"に設定されているので、多くのテキストがないときに縮小すると思います。これを試してみてください:

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="match_parent" 
    android:layout_below="@+id/ImageView01" 
    android:layout_weight="1.0" 
    android:id="@+id/scrollviewinfo">   

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     android:layout_width="fill_parent"    
     android:layout_height="match_parent" 
     android:orientation="vertical"    
     android:id="@+id/infolayout2"> 
    ... 
    </LinearLayout> 
</ScrollView> 
+0

私はそれを試しても機能しませんでした。ダイアログ全体が幅と高さが小さすぎます。私は既に "fill_parent"と "match_parent"のさまざまな組み合わせを試みました。私にはわからないことがありますか?何か余分に設定するか、世話をする必要がありますか? – HardCoder

0

してみてください。それは私のために働いた。

+2

複数の質問に同じ回答を加えないでください。最良のものに答え、残りを重複としてフラグを立てる。 「[いくつかの質問に重複した回答を加えることは容認できますか?](http://meta.stackexchange.com/q/104227) –

+0

@BhargavRao確かに、それを念頭に置いてください。 – Ayan

関連する問題