2013-03-25 15 views
9

チュートリアルのテキストを表示するアクションバーにいくつかのビューを設定したいと思います(ここをクリックしてメールを送信する...)。これは可能ですか?私は、アクションバーがレイアウト上の一番上のスペースを使い、フラグメントやアクティビティが残りのスペースを使用していることを知っているからです。
私の2番目の質問は、アクションバーにすべてのアクションアイテムを表示する方法です。私はActionBarSherlockライブラリを使用して、私はもう1つのアクション項目のためのスペースがあることがわかりますが、アクションバーには表示されません。私は項目にxml ifRoomオプションを設定しました...オーバーレイの配置方法アクションバーの上に表示するSherlock

ありがとう!!!

+0

2番目の質問は、件名に記載されている問題とは直接関係していないため、別の投稿として質問してください(これを削除することをお勧めします)。 – vArDo

答えて

23

チュートリアルのようなオーバーレイを実現する方法は複数あります。おそらく最も簡単なのは、特別に用意されたDialogウィンドウを透明な背景と暗い背景なしで使用することでしょう。チュートリアルオーバーレイ我々はDialogのコンテンツを準備する必要があり、すべての

まず用のカスタムDialogを使用して

。この例ではRelativeLayoutの内部にTextViewという1つがあり、最も有用なレイアウトです。 info_overlay.xmlファイルの

内容:今

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <TextView 
     android:id="@+id/textView1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentTop="true" 
     android:background="@android:color/darker_gray" 
     android:padding="3dp" 
     android:text="TextView" 
     android:textColor="@android:color/white" /> 

</RelativeLayout> 

、私たちはDialogを作成するには、このレイアウトを使用することができます。

public class MainActivity extends Activity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     Dialog overlayInfo = new Dialog(MainActivity.this); 
     // Making sure there's no title. 
     overlayInfo.requestWindowFeature(Window.FEATURE_NO_TITLE); 
     // Making dialog content transparent. 
     overlayInfo.getWindow().setBackgroundDrawable(
       new ColorDrawable(Color.TRANSPARENT)); 
     // Removing window dim normally visible when dialog are shown. 
     overlayInfo.getWindow().clearFlags(
       WindowManager.LayoutParams.FLAG_DIM_BEHIND); 
     // Setting position of content, relative to window. 
     WindowManager.LayoutParams params = overlayInfo.getWindow().getAttributes(); 
     params.gravity = Gravity.TOP | Gravity.LEFT; 
     params.x = 100; 
     params.y = 20; 
     // If user taps anywhere on the screen, dialog will be cancelled. 
     overlayInfo.setCancelable(true); 
     // Setting the content using prepared XML layout file. 
     overlayInfo.setContentView(R.layout.info_overlay); 
     overlayInfo.show(); 
    } 

結果以下

は、上記溶液の作業のスクリーンショットです。 ActionBarを超えるTextViewに注意してください。

enter image description here

ソリューション

  • についての注意事項あなたはおそらく、チュートリアルの偶然の閉鎖を回避するために、setCancelable(false)を使用することができますチュートリアルを却下する専用ボタンがあります場合。
  • このソリューションは、任意のアクションバーの溶液を用いて任意のテーマで動作します(いずれかのOSが提供する、Androidのサポートライブラリまたはアクションバーシャーロック

その他のソリューション/ヘルパー

Showcase View libraryを見てみましょうチュートリアルのような画面を簡単に作成することに重点を置いています。私はそれが簡単にアクションバーをオーバーレイできることは確かではありません。

+0

私はそれを見ました。私は明日テストしますが、これは正しいことだと思います!!!私の質問についての包括的な回答をありがとう。 – Jovan

+0

@ Jovanそれが助けてくれることを願っています。 2番目の質問をアクションバーのアイテムの表示から別の投稿に移動してください。それは確かにSOのユーザーからより多くの注目を得るでしょう。 – vArDo

+0

@vArDoこのソリューションをありがとうございます – RajeshVijayakumar

関連する問題