활동 제목이 아닌 실행기에 다른 레이블을 설정하는 방법은 무엇입니까?
이 질문은 이전에 요청되었지만 전혀 만족스러운 답변이 없습니다! 다시 시도하고 있습니다.
응용 프로그램 시작 관리자 아이콘 (시작 화면에 표시되는 아이콘)에 다른 짧은 캡션을 제공하고 싶습니다. 런처는 mainfest 섹션에서 메인 액티비티 라벨에 대한 라벨을 다음과 같이 가져옵니다.
<activity android:name="MainActivity" android:label="@string/app_short_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
이미 내 앱 이름 @ string / app_name에 대한 원래 참조를 다른 짧은 문자열 리소스로 변경했습니다.
BUT-big BUT : 물론이 활동의 기본 제목을 변경합니다! 그리고 그런 일이 일어나고 싶지 않았습니다. 긴 응용 프로그램 이름을위한 충분한 공간이 있습니다! onCreate
이 setTitle(int)
방법 을 사용하여 긴 제목을 다시 설정해도 짧은 이름은 짧은 시간 동안 사용자에게 표시되지만 알아볼 수있을만큼 길기 때문에 좋지 않습니다!
그리고-사용자 정의 제목 표시 줄을 참조하여 내 질문에 대답하지 마십시오 ... 나는 바보 같은 문자열 제목 때문에 먼 길을 가고 싶지 않습니다! 효과가 거의없는 사용자 지정 제목 표시 줄을 그리는 것은 고통입니다!
거기에 없습니다 쉬운 방법 단지 런처를 디스플레이에 다른 문자열을 얻었다는? 답변 주셔서 감사합니다!
편집 : 사용자 정의 제목 표시 줄이 고통스러운 또 다른 이유는 기본 제목 표시 줄처럼 보이지 않기 때문에 각 장치에서 똑같이 보이도록 작업을 명시 적으로 수행해야합니다! 그리고 나는 다른 모습을 원하지 않는다면 해결책이 될 수 없습니다!
분명히 <intent-filter>
레이블 속성을 가질 수 있습니다. 레이블이 없으면 레이블은 상위 컴포넌트 (활동 또는 애플리케이션)에서 상속됩니다. 따라서이를 사용하여 시작 프로그램 아이콘의 레이블을 설정할 수 있으며 자체 제목의 활동을 계속 유지할 수 있습니다.
이것은 에뮬레이터에서 작동하지만 사용되는 실행기 구현에 따라 다르므로 실제 장치에서는 작동하지 않을 수 있습니다.
http://developer.android.com/guide/topics/manifest/intent-filter-element.html
<activity
android:name=".ui.HomeActivity"
android:label="@string/title_home_activity"
android:icon="@drawable/icon">
<intent-filter android:label="@string/app_name">
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
참고 : <intent-filter>는 icon 속성을 가질 수도 있지만 , 액티비티에 지정된 아이콘을 무시할 수는 없습니다 . 활동에 지정된 아이콘 및 로고를 사용하는 SDK 11+의 기본 ActionBar를 사용하려는 경우이 기능이 중요 할 수 있습니다.
추가 된 정보 : 레이블이 응용 프로그램이 아닌 활동에서 상속됩니다.
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".StartActivity"
android:label="@string/app_long_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
이 경우 위에서 언급 한대로 레이블을 넣지 않으면 app_long_name이 실행기 아이콘과 함께 표시됩니다.
나는 똑같은 것을 찾고 있었고 여기 나를 위해 일한 것이 있습니다.
<activity android:name="MainActivity" android:label="@string/app_short_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
응용 프로그램 시작 관리자 아이콘의 이름이 짧습니다.
응용 프로그램 표시 줄에 더 큰 이름을 추가하려면 다음을 추가하면됩니다.
this.setTitle(getResources().getString(R.string.app_name));
주요 활동 자바 파일에.
Mark Renouf의 솔루션이 나에게 실패합니다 (Nexus 4 및 Android 4.4 사용). 바로 가기를 사용하면 실패하고 바로 가기는 앱 이름 대신 기본 활동 레이블을 사용합니다. Gmail 및 Google Keep과 같은 일부 앱이 제대로 작동하는 것을 보았습니다. 그러나 열면 제목이 비어 있고 제목이 나타납니다 (setTitle ()을 사용하여 제목을 설정하기 전에 앱 이름이 깜박이는 것보다 낫습니다).
내가 찾은 최고의 솔루션 은 다음 과 같습니다.
ActionBar에 제목 / 라벨이 표시되지 않는 스타일을 만듭니다.
<style name="NoActionBarTitle" parent="android:Theme.Holo.Light.DarkActionBar">
<item name="android:actionBarStyle">@style/NoActionBarTitle.ActionBar</item>
</style>
<style name="NoActionBarTitle.ActionBar" parent="@android:style/Widget.Holo.ActionBar">
<item name="android:displayOptions">showHome|useLogo</item>
</style>
탐색 창을 사용하고 로고를 사용하고 있습니다 (앱에 로고와 아이콘을 사용하기 때문). showTitle을 사용하지 않고 무엇이든 사용할 수 있습니다 . 그런 다음 AndroidManifest.xml에서 MainActivity에 대한 테마를 설정하십시오.
<activity
android:name="com.xx.xxx.MainActivity"
android:logo="@drawable/ic_icon_padding"
android:theme="@style/NoActionBarTitle">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
그런 다음 MainActivity의 onCreate () 메소드에서 작업 표시 줄의 제목을 설정하십시오.
getActionBar().setTitle(R.string.your_title);
그 후에 는 다음을 호출 할 수 있습니다.
getActionBar().setDisplayShowTitleEnabled(true);
까다 롭지 만 가치가 있습니다.
이것은 아마도 당신이하고 싶은 일을 만족시키지 못할 것이지만, 아주 짧게 표시되는 스플래시 화면을 만드는 것에 대해 생각했지만 (기본 제목으로) 그 setTitle(int)
방법을 사용하여 선택한 제목으로 새로운 실제 "주"활동을 시작합니다 ? 나는 그것이 효과가 있는지 확인하기 위해 이것을 시도하지는 않았지만 그것이 당신이 달성하려는 것의 덜 원활한 성격을 나타내지 않는 즐거운 일을 만들 수 있습니다.
이 방법을 통해 Support / Appcompat Toolbar를 사용하는 모든 사람 setSupportActionBar()
은 활동 제목을 도구 모음 XML에서 설정할 수 있습니다.
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
app:title="@string/activity_title"
...
/>
매니페스트에 설정된 응용 프로그램 및 활동 레이블을 재정의합니다.
android.support.v7.widget.Toolbar
나는이 문제에 대한 해결 방법을 찾을
에서 manifest.xml
당신의 쓰기 응용 프로그램의 이름을 에서 android:label
의 실행 (주) 활동 .
이렇게하면 기본 활동의 레이블이 앱 레이블의 레이블과 동일하게됩니다.
그런 다음 Launcher (main) 활동 의 onCreate()
함수 에서이 문장을 작성하십시오.
if (getSupportActionBar() != null) {
getSupportActionBar().setTitle("main activity label");
}
여기에 Launcher (main) 활동에 제공하려는 레이블을 작성하십시오.
다음과 같이 할 수 있습니다 :
public class FooBar extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// change title
requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
setContentView(R.layout.main);
getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.my_title);
}
}
제목을 담을 사용자 정의 레이아웃을 만들어야합니다. 다음과 같이 간단 할 수 있습니다 my_title.xml
.
<?xml version="1.0" encoding="utf-8"?>
<TextView
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="foo bar"/>
당신의에서 AndroidManifest.xml
파일을 그냥 실행 아이콘에 표시하기 위해 무슨 일있는 앱의 제목을 설정해야합니다. 활동을 위해 제목을 설정할 필요가 없습니다.
실행기는 실제로 선언하는 활동에 대한 android : label 및 android : icon을 표시합니다.
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
따라서 응용 프로그램 레이블은 사용되지 않습니다.
'Programing' 카테고리의 다른 글
Mocha를 통한 코드 커버리지 (0) | 2020.03.29 |
---|---|
JSON 및 XML 비교 (0) | 2020.03.29 |
SQL Server 저장 프로 시저에 배열을 전달하는 방법 (0) | 2020.03.29 |
스캐너 대 버퍼 리더 (0) | 2020.03.29 |
처음 발생시 분할 (0) | 2020.03.29 |