ฉันรู้วิธีใช้ธีมกับแอปพลิเคชันทั้งหมด แต่ฉันจะไปใช้ธีมกับกิจกรรมเดียวได้อย่างไร
ฉันรู้วิธีใช้ธีมกับแอปพลิเคชันทั้งหมด แต่ฉันจะไปใช้ธีมกับกิจกรรมเดียวได้อย่างไร
คำตอบ:
คุณสามารถใช้ธีมกับกิจกรรมใด ๆ โดยรวมandroid:theme
ไว้<activity>
ในไฟล์รายการ
ตัวอย่างเช่น:
<activity android:theme="@android:style/Theme.Dialog">
<activity android:theme="@style/CustomTheme">
และถ้าคุณต้องการตั้งค่าธีมโดยทางโปรแกรมให้ใช้setTheme()
ก่อนการโทรsetContentView()
และsuper.onCreate()
วิธีการภายในonCreate()
วิธี
tools:context= ".YourAtivityName"
ในรูท
ในการตั้งค่าโดยใช้โปรแกรมใน Activity.java:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setTheme(R.style.MyTheme); // (for Custom theme)
setTheme(android.R.style.Theme_Holo); // (for Android Built In Theme)
this.setContentView(R.layout.myactivity);
ในการตั้งค่าในขอบเขตการใช้งานใน Manifest.xml (กิจกรรมทั้งหมด):
<application
android:theme="@android:style/Theme.Holo"
android:theme="@style/MyTheme">
ในการตั้งค่าในขอบเขตกิจกรรมใน Manifest.xml (กิจกรรมเดียว):
<activity
android:theme="@android:style/Theme.Holo"
android:theme="@style/MyTheme">
ในการสร้างธีมที่กำหนดเองคุณจะต้องประกาศธีมในไฟล์ themes.xml และตั้งค่าสไตล์ในไฟล์ styles.xml
android:theme
คุณลักษณะสองอย่าง
android:theme="@android:style/Theme.Holo"
เป็นไวยากรณ์สำหรับการเพิ่มธีมในตัวของ Android android:theme="@style/MyTheme"
คือไวยากรณ์สำหรับการเพิ่มธีมแบบกำหนดเองที่อธิบายไว้ในstyles.xml
ไฟล์ของคุณ ในAndroidManifest.xml
ไฟล์จริงของคุณคุณจะใช้เพียงไฟล์เดียวสำหรับแต่ละส่วนไม่ใช่ทั้งสองอย่าง
styles.xml
android:theme=@style/MyBlankTheme
ก่อนที่คุณจะโทรโทรsetContentView()
หาsetTheme(android.R.style...)
และแทนที่ ... ด้วยธีมที่คุณต้องการ (ธีม, Theme_NoTitleBar ฯลฯ )
หรือถ้าธีมของคุณเป็นธีมที่กำหนดเองให้แทนที่สิ่งทั้งหมดเพื่อให้คุณได้รับ setTheme(yourThemesResouceId)