문제

전체 화면 모드로 표시되지 않도록 창 제목을 숨길 수있는 방법이 있습니까 (

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

)하지만 그때 나타날 것입니다

getWindow().clearFlags(LayoutParams.FLAG_FULLSCREEN)

?

requestWindowFeature(Window.FEATURE_NO_TITLE)

이것은 물론 옵션이 아닙니다.

도움이 되었습니까?

해결책

안드로이드 게임에서 이것을 처리하는 방법은 내 활동의 oncreate ()에서 다음 줄을 호출하는 것입니다.

requestWindowFeature(Window.FEATURE_NO_TITLE);

그런 다음 전체 화면 기능을 끄고 내 활동 클래스에서 다음 코드를 사용하여 켜질 수 있습니다 (일반적으로 메뉴 옵션에서 호출) (m_contentView 변수는 setContentView ()를 호출 할 때 사용한 ID를 사용하여 findViewById ()의보기입니다. 당신의 생성)

private void updateFullscreenStatus(boolean bUseFullscreen)
{   
   if(bUseFullscreen)
   {
        getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
        getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);
    }
    else
    {
        getWindow().addFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);
        getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
    }

    m_contentView.requestLayout();
}

나는 모든 게임 에서이 기술을 문제없이 사용합니다.

당신은 왜 말합니까?

requestWindowFeature (window.feature_no_title); 물론 옵션이 아닙니다

?

::편집하다::

활동의 수명 동안 동적으로 보여주고 숨기려고한다면 SetContentView () 전에 설정 해야하는 창 기능에 대해 언급 된 메모로 인해 공식 창 제목으로 수행 할 수 있는지 확실하지 않습니다. (링크)

당신이 할 수있는 한 가지는 자신의 타이틀 바를 구현하고 역동적으로 보여주고 숨기는 것입니다 ... 나는 당신을 올바른 길로 설정 해야하는이 예를 모았습니다.

레이아웃 파일은 다음과 같습니다

<?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:fadingEdgeLength="0sp"
    >

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

        <TextView
            android:id="@+id/myTitleBarTextView"
            android:layout_width="fill_parent" 
            android:layout_height="wrap_content"
            android:text="@string/app_name"
            android:paddingTop="4dip"
            android:paddingBottom="4dip"
            android:paddingLeft="6dip"
            android:textStyle="bold"
            android:shadowColor="#BB000000"
            android:shadowRadius="3.0"
            android:shadowDy=".25"

        />

        <View
            android:layout_width="fill_parent"
            android:layout_height="1dip"
            android:background="#CCEEEEEE"
            android:padding="10dip"
        />
    </LinearLayout>

    <ScrollView  xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent" 
        android:layout_height="fill_parent"
        android:layout_weight="1"
        >

        <!-- Insert your regular layout stuff here -->

        <Button android:id="@+id/toggle_title_button" 
            android:layout_width="wrap_content" 
            android:layout_height="wrap_content"
            android:text="Toggle Title" 
        />
    </ScrollView>
</LinearLayout>

그리고 여기에 사용자 정의 제목 표시 줄을 켜고 끄는 주요 활동에 대한 코드가 있습니다.

package com.snctln.test.HelloGridView;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.TextView;

public class HelloGridView extends Activity
{
    public void onCreate(Bundle savedInstanceState)
    {
        requestWindowFeature(Window.FEATURE_NO_TITLE);

        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        TextView tv = (TextView)this.findViewById(R.id.myTitleBarTextView);
        tv.setBackgroundColor(0xFF848284);
        tv.setTextColor(0xFFFFFFFF);

        Button toggleTitleButton = (Button)this.findViewById(R.id.toggle_title_button);

        toggleTitleButton.setOnClickListener( new OnClickListener()
            {
                @Override
                public void onClick(View v)
                {
                    LinearLayout ll = (LinearLayout)findViewById(R.id.myTitleBarLayout);

                    if(ll.getVisibility() == View.GONE)
                    {
                        ll.setVisibility(View.VISIBLE);
                    }
                    else
                    {
                        ll.setVisibility(View.GONE);
                    }
                }
            });
    }
}

완벽하게 보이지는 않지만 항상 레이아웃을 사용하여 플레이 할 수 있습니다.

alt text

내 다른 생각은 당신이 모든 것을 숨기고 진행률 표시 줄을 보여주고 싶다면 ProgressDialog?

이 수업은 사용하기가 매우 쉽습니다 ...

progressDlg = ProgressDialog.show(context, getString(R.string.progress_dialog_title_prepare), getString(R.string.progress_dialog_body_prepare));

// do long running operation

if(operationFailed)
{
    progressDlg.cancel();
}
else
{
    progressDlg.dismiss();
}

다른 팁

첨가 android:theme="@android:style/Theme.NoTitleBar.Fullscreen" Manifest 파일의 응용 프로그램 태그로 모든 활동이 전체 화면을 만듭니다.

응용 프로그램 제목을 비활성화합니다 (앱 이름입니다)

requestWindowFeature(Window.FEATURE_NO_TITLE)

상단의 알림 표시 줄을 비활성화합니다 (따라서 전체 화면을 허용하라는 Android 앱 관리자에게 요청)

getWindow().addFlags(LayoutParams.FLAG_FULLSCREEN)

이것이 차이를 알고 싶어하는 사람이라면 누구나 도움이되기를 바랍니다 !!

if(useFullscreen)  
{  
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);  
    getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);  
}  
else  
{  
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);  
    getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);  
}  

이것은 나에게 효과가있었습니다 .. Onresume Method에서

Android 3+에서는 전화로 쉽게 달성 할 수 있습니다. getActionBar().hide() 그리고 getActionBar().show() 표준 액션 바를 각각 보여주고 숨기려면

Android 1,2에서 가장 좋은 솔루션 (추측)은 Yout "Title Bar"에 대한 사용자 정의보기를 구현하고 요청에 따라 숨기는 것입니다 (물론 requestWindowFeature(Window.FEATURE_NO_TITLE); 처음에).

문서 및 Android 개발자 Google Group에 따르면 불가능합니다. 이를 구현하려면 텍스트 및 진행률 표시 줄에 '제목 바 같은'레이아웃 항목을 추가하고 필요할 때 숨기기/표시해야합니다. 지금은 SetContentView 호출 전에만 제목 막대 컨트롤을 수행 할 수 있고 이후에 변경되지 않기 때문에 다른 방법은 없습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top