Android 지원 작업 표시 줄로 AppCompat.Translucent 유형 테마를 얻는 방법은 무엇입니까?
내 활동 중 하나에 지원 작업 표시 줄을 추가하고 싶습니다. 이전에는이 활동에 theme.translucent를 사용했지만 지원 작업 표시 줄이 작동하도록하려면 Theme.AppCompat를 상속해야했기 때문에 반투명을 유지해야합니다. 이 활동에는 테마가 있지만 안타깝게도 기본적으로 볼 수있는 Theme.AppCompat.translucent가 없습니다.이 작업을 수행 할 수있는 방법이 있습니까?
themes.xmlTheme.Translucent
에서 와 동일한 속성을 가진 사용할 새 스타일 세트를 만들 수 있습니다 .
styles.xml 파일에 다음을 추가하십시오.
<style name="Theme.AppCompat.Translucent">
<item name="android:windowNoTitle">true</item>
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:colorBackgroundCacheHint">@null</item>
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowAnimationStyle">@android:style/Animation</item>
</style>
Theme.AppCompat
대화 스타일 등과 같은 테마에서 다른 것을 상속하려는 경우 접두사 를 다른 것으로 변경할 수 있습니다 . 예를 들어, 같은 이름 Theme.AppCompat.Light.Translucent
은 Light 테마의 속성을 갖습니다.
새 스타일을 사용하려면 테마 속성을 @style/Theme.AppCompat.Translucent
<activity
android:name=".TranslucentActivity"
android:theme="@style/Theme.AppCompat.Translucent" >
</activity>
파라 마,
<style name="Theme.AppCompat.Translucent" parent="Theme.AppCompat.NoActionBar">
<item name="android:windowNoTitle">true</item>
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:colorBackgroundCacheHint">@null</item>
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowAnimationStyle">@android:style/Animation</item>
</style>
툴바를 사라지게하려면 스타일 헤더 여야합니다. 다른 효과를 위해 NoActionBar가있는 부모 테마를 사용할 수 있습니다.
도움이 되었기를 바랍니다
투명한 활동을 위해 Translucent를 사용하는 경우. Msgbox의 색상 (이전에는 검은 색 이전에 흰색), 기본 대화 상자 색상, 스피너가 드롭 다운되지만 밑줄과 드롭 다운 화살표가 표시되지 않는 등 다른 문제가 발생합니다. 스피너는 검정색 텍스트 검정색입니다. 드롭 다운 흰색 드롭 다운 텍스트 검정 등.이 문제를 극복하려면 아래 코드를 사용하면됩니다.
스타일
<style name="Theme.AppCompat.Transparent.NoActionBar" parent="Theme.AppCompat.Light.NoActionBar">
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowIsFloating">false</item>
<item name="android:backgroundDimEnabled">false</item>
</style>
매니페스트 파일에서
<activity
android:name=".activity.YourActivityName"
android:theme="@style/Theme.AppCompat.Transparent.NoActionBar" />
도움이 되었기를 바랍니다. 감사합니다.
Cameron의 대답은 멋진 해킹 이지만 플로팅 액션 바를 생성하고 내가 원하지 않는 상태 표시 줄에 색을 입혔습니다. 그래서 상태 표시 줄을 투명하게 만들기 위해 더 많은 xml 속성을 추가하고 (sdk> = 19) 작업 표시 줄을 보이지 않게 만들기 위해 Java 코드를 사용했습니다.
mainActivity.java :
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
getSupportActionBar().hide();
...
}
...
}
styles.xml
<style name="AppTheme.TranslucentBG">
<item name="android:windowNoTitle">true</item>
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:colorBackgroundCacheHint">@null</item>
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowAnimationStyle">@android:style/Animation</item>
<item name="android:windowTranslucentStatus">true</item>
<item name="android:windowTranslucentNavigation">true</item>
</style>
manifest.xml
<application
android:icon="@mipmap/ic_launcher"
...
android:theme="@style/AppTheme"
...
>
<activity android:name=".MainActivity"
android:theme="@style/AppTheme.TranslucentBG"
...
>
...
</activity>
</application>
'developer tip' 카테고리의 다른 글
jQuery / CSS를 사용하여 모든 요소 중 가장 높은 요소 찾기 (0) | 2020.11.29 |
---|---|
최소 8 자, 숫자 1 개, 대문자 1 개 및 소문자 1 개를 포함하는 비밀번호에 대한 javascript regex (0) | 2020.11.29 |
선택 항목의 인덱스를 사용하여 MySQL에서 임시 테이블 만들기 (0) | 2020.11.29 |
ASP.NET MVC WebAPI 404 오류 (0) | 2020.11.29 |
컬 오류 18-미해결 읽기 데이터가 남아있는 상태로 전송이 종료 됨 (0) | 2020.11.28 |