5

Bir iletişim parçasıyla birlikte bir bağlamsal eylem çubuğu uygulamaya çalışıyorum. Android'de indirilenler widget'ına benzer.DialogFragment ile içeriksel Actionbar

enter image description here

ben tema gerçek olamayacak kadar android:windowActionModeOverlay ayarlamak için çalıştık.

Fakat işe yaramıyor gibi görünüyor. Başarabileceğim herhangi bir yol var mı?

cevap

4

indirme penceresi bir iletişim gibi yapar @android:style/Theme.Holo.Dialog temasını kullanarak aslında bir Activity olduğunu. İndirme penceresiyle aynı görünüme ulaşmak için, Activity ürününüzün yalnızca aynı temayı kullanması gerekir.

Öyle gibi Manifest'inizde bu tema ayarlayabilirsiniz:

<activity android:name=".MainActivity" 
    android:label="@string/app_name" 
    android:theme="@android:style/Theme.Holo.Dialog" > 
    <intent-filter> 
     <action android:name="android.intent.action.MAIN" /> 

     <category android:name="android.intent.category.LAUNCHER" /> 
    </intent-filter> 
</activity> 

Örnek uygulama hariç dize ve çekilebilir kaynaklar.

Bildirim:

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.mceley.dialog.example" 
    android:versionCode="1" 
    android:versionName="1.0" > 

    <uses-sdk 
     android:minSdkVersion="14" 
     android:targetSdkVersion="17" /> 

    <application 
     android:allowBackup="true" 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name" > 
     <activity android:name=".MainActivity" 
      android:label="@string/app_name" 
      android:theme="@android:style/Theme.Holo.Dialog" > 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
    </application> 

</manifest> 

MainActivity.java:

package com.mceley.dialog.example; 

import android.app.Activity; 
import android.os.Bundle; 
import android.view.ActionMode; 
import android.view.Menu; 
import android.view.MenuItem; 
import android.view.View; 
import android.view.View.OnClickListener; 

public class MainActivity extends Activity implements OnClickListener { 

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

     findViewById(R.id.context_button).setOnClickListener(this); 
    } 

    @Override 
    public void onClick(View v) { 
     ExampleMode mode = new ExampleMode(); 
     startActionMode(mode); 
    } 

    public class ExampleMode implements ActionMode.Callback { 

     @Override 
     public boolean onActionItemClicked(ActionMode mode, MenuItem item) { 
      return false; 
     } 

     @Override 
     public boolean onCreateActionMode(ActionMode mode, Menu menu) { 
      mode.getMenuInflater().inflate(R.menu.main_menu, menu); 
      return true; 
     } 

     @Override 
     public void onDestroyActionMode(ActionMode mode) { 

     } 

     @Override 
     public boolean onPrepareActionMode(ActionMode mode, Menu menu) { 
      return false; 
     } 
    } 
} 

main_layout.xml:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:gravity="center" > 

    <Button android:id="@+id/context_button" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="@string/show_context_bar" /> 

</LinearLayout> 

main_menu.xml:

<menu xmlns:android="http://schemas.android.com/apk/res/android" > 
    <item android:id="@+id/action_settings" 
     android:showAsAction="never" 
     android:title="@string/action_settings"/> 
</menu> 

Sonuç: ararken ben bu rastlamak yoktu

Dialog Example App

+0

. Parça için bir etkinlik oluşturmadan bunu yapmanın bir yolu olup olmadığını bilmek istedim. Neyse .. Teşekkürler –

0

DialogFragment'te ActionBar ekleyebileceğinizi düşünmüyorum.

Ancak bunu Etkinlik Olarak İletişim Kutusu kullanarak deneyebiliriz.

Ben ActionBarSherlock ile denedim ve benim etkinlik'ın tema olarak R.style.Sherlock___Theme_Dialog eklemiş ama şuna benzer:

enter image description hereenter image description hereenter image description here

i understud Üstü şeyi yapıyor sonra biz ActionBar ekle olamaz Dialog veya DialogFragment. Eğer ekran görüntüsünde var