전체 화면 모드에서 제목을 숨기고 있습니까?
-
13-09-2019 - |
문제
전체 화면 모드로 표시되지 않도록 창 제목을 숨길 수있는 방법이 있습니까 (
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);
}
}
});
}
}
완벽하게 보이지는 않지만 항상 레이아웃을 사용하여 플레이 할 수 있습니다.
내 다른 생각은 당신이 모든 것을 숨기고 진행률 표시 줄을 보여주고 싶다면 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 호출 전에만 제목 막대 컨트롤을 수행 할 수 있고 이후에 변경되지 않기 때문에 다른 방법은 없습니다.