我想設置一些視圖,將顯示教程文本的動作欄(如點擊這裏,發送電子郵件...)。這可能嗎?我問,因爲我知道操作欄使用佈局上的頂部空間,而片段或活動使用剩餘空間。
我的第二個問題是如何顯示操作欄上的所有操作項目。我使用ActionBarSherlock庫,我發現我有一個額外的行動項目的空間,但它不顯示在操作欄上。我在xml中設置了ifRoom選項...如何把覆蓋視圖上方的行動酒吧Sherlock
謝謝!!!
我想設置一些視圖,將顯示教程文本的動作欄(如點擊這裏,發送電子郵件...)。這可能嗎?我問,因爲我知道操作欄使用佈局上的頂部空間,而片段或活動使用剩餘空間。
我的第二個問題是如何顯示操作欄上的所有操作項目。我使用ActionBarSherlock庫,我發現我有一個額外的行動項目的空間,但它不顯示在操作欄上。我在xml中設置了ifRoom選項...如何把覆蓋視圖上方的行動酒吧Sherlock
謝謝!!!
有多種方法可以實現類似教程的疊加。可能最簡單的方法是使用特殊準備的Dialog窗口,透明背景且沒有變暗。
Dialog
教程的覆蓋首先我們要準備爲Dialog
內容。在這個例子中,RelativeLayout
裏面會有一個TextView
,這是這裏最有用的佈局。 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();
}
下面是上述解決方案工作的屏幕截圖。注意TextView
超過ActionBar
。
setCancelable(false)
避免教程意外關閉。看看Showcase View library因爲它專注於以簡單的方式創建類似教程的屏幕。但我不確定它是否可以輕鬆地覆蓋操作欄。
我剛看到它..我明天會測試它,但我認爲這是正確的!感謝關於我的問題的全面迴應。 – Jovan 2013-03-27 16:36:18
@Jovan希望它有幫助。請將您的第二個問題關於操作欄中項目的可見性以分開發布。它肯定會得到SO用戶的更多關注。 – vArDo 2013-03-29 10:37:51
@vArDo非常感謝您的解決方案 – RajeshVijayakumar 2013-05-01 07:24:12
我建議你問第二個問題作爲單獨發佈(並從中刪除),因爲它與主題中陳述的問題沒有直接關係。 – vArDo 2013-03-26 13:23:41