9

Cách nào chính xác để xóa thanh tác vụ bên trong một hoạt động?Holoeverywhere: cách xóa theo chương trình khi chạy thanh tác vụ từ hoạt động

hoạt động của tôi kéo dài org.holoeverywhere.app.Activity

Tôi đã một lớp ứng dụng tùy chỉnh kéo dài org.holoeverywhere.app.Application và tại giám đốc điều hành khởi động mã tĩnh này:

ThemeManager.setDefaultTheme(ThemeManager.DARK); 
ThemeManager.map(ThemeManager.DARK, R.style.Holo_Demo_Theme); 
ThemeManager.map(ThemeManager.LIGHT, R.style.Holo_Demo_Theme_Light); 
ThemeManager.map(ThemeManager.MIXED, R.style.Holo_Demo_Theme_Light_DarkActionBar); 
ThemeManager.map(ThemeManager.DARK | ThemeManager.FULLSCREEN, R.style.Holo_Demo_Theme_Fullscreen); 
ThemeManager.map(ThemeManager.LIGHT | ThemeManager.FULLSCREEN, R.style.Holo_Demo_Theme_Light_Fullscreen); 
ThemeManager.map(ThemeManager.MIXED | ThemeManager.FULLSCREEN, R.style.Holo_Demo_Theme_Light_DarkActionBar_Fullscreen); 

trong hoạt động của tôi:

protected void onCreate(Bundle savedInstanceState) { 

    ThemeManager.removeTheme(this); 
    setTheme(ThemeManager.DARK | ThemeManager.FULLSCREEN); 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_login); 

nếu tôi thêm requestWindowFeature(Window.FEATURE_NO_TITLE) trong các mã, trên một android 4.1.1 -table- thanh được lấy ra khi đang sử dụng thiết bị cầm tay -android 2.3.3 - thanh không bị xóa.

Trước khi giới thiệu holoeverywhere tất cả mọi thứ làm việc tốt với chỉ requestWindowFeature(Window.FEATURE_NO_TITLE).

Đó là cách chính xác để loại bỏ trong thời gian chạy các actionbar trong holoeverywhere? (Tôi muốn làm điều đó trong thời gian chạy vì người sử dụng có quyền lựa chọn để thiết lập một tối hoặc ánh sáng bố trí, với một mặc định TỐI)

Trả lời

23

Xem cờ ThemeManager.NO_ACTION_BAR. Hoặc chỉ cần gọi

getSupportActionBar().hide(); 
+0

Cảm ơn Prototik, nó hoạt động. – Maxj

+0

Nó cũng hoạt động với setTheme (ThemeManager.DARK | ThemeManager.NO_ACTION_BAR); Tôi đã sử dụng ThemeManager.FULLSCREEN thay vì NO_ACTION_BAR – Maxj

2

Bạn có thể làm điều đó programatically:

import android.app.Activity; 
import android.os.Bundle; 
import android.view.Window; 
import android.view.WindowManager; 

public class ActivityName extends Activity { 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     // remove title 
     requestWindowFeature(Window.FEATURE_NO_TITLE); 
     getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 
      WindowManager.LayoutParams.FLAG_FULLSCREEN); 
     setContentView(R.layout.main); 
    } 
} 

Hoặc bạn có thể làm điều đó qua tệp AndroidManifest.xml của bạn:

<activity android:name=".ActivityName" 
    android:label="@string/app_name" 
    android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen"> 
</activity> 

Tôi đã thêm một số dòng để bạn có thể hiển thị ở chế độ toàn màn hình, có vẻ như đó là những gì bạn muốn.

+0

nhờ cho câu trả lời, nhưng trong ví dụ của bạn, bạn đang không sử dụng thư viện holoeverywhere, nhưng "tinh khiết" android SDK ... – Maxj

+0

Oh xin lỗi tôi oculdn't giúp bạn ra ngoài. Tôi trả lời với bất cứ điều gì tôi đã có kiến ​​thức. –

+0

Với SDK thuần túy, mọi thứ hoạt động. Sau khi tôi giới thiệu thư viện, tôi có vấn đề này. Tôi nghĩ rằng đó là một vấn đề "ngu ngốc", nhưng thư viện không có tài liệu nào cả! – Maxj