ในแอปของฉันจะมีแถบหัวเรื่องนี้ที่ด้านบนซึ่งจะเป็นเมนูรายการเพิ่มเติม แต่ฉันไม่ต้องการการตั้งค่าและมีเพียงหน้าจอเดียว เมื่อฉันเปลี่ยนชุดรูปแบบตามที่อธิบายไว้ในคำถามอื่น ๆ ฉันได้รับธีม 2.2 เก่า ฉันต้องการมีธีมที่ทันสมัยโดยไม่มีแถบที่ด้านบน
ในแอปของฉันจะมีแถบหัวเรื่องนี้ที่ด้านบนซึ่งจะเป็นเมนูรายการเพิ่มเติม แต่ฉันไม่ต้องการการตั้งค่าและมีเพียงหน้าจอเดียว เมื่อฉันเปลี่ยนชุดรูปแบบตามที่อธิบายไว้ในคำถามอื่น ๆ ฉันได้รับธีม 2.2 เก่า ฉันต้องการมีธีมที่ทันสมัยโดยไม่มีแถบที่ด้านบน
คำตอบ:
ไปที่ styles.xml และเปลี่ยน.DarkActionBar
เป็น.NoActionBar
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
กลายเป็น
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
หากสีไม่เกี่ยวข้องกับแอปของคุณคุณสามารถเลือกได้
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar" />
ในไฟล์รายการเปลี่ยนแปลง:
android:theme="@style/AppTheme" >
android:theme="@style/Theme.AppCompat.NoActionBar"
styles.xml
ไฟล์อาจเป็นตัวเลือกที่ดีกว่าสำหรับคนส่วนใหญ่เนื่องจากการใช้วิธีนี้จะไม่สนใจค่าใด ๆ ที่อาจถูกตั้งค่าไว้AppTheme
ในstyles.xml
ไฟล์ โซลูชันด้านล่างซึ่งแทนที่คลาสพาเรนต์NoActionBar
ภายในstyles.xml
ไฟล์จะเก็บรักษาข้อมูลสไตล์ที่มีอยู่แล้วซึ่งได้รับการตั้งค่าไว้
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
ทำงานonCreate()
เมื่อsetContentView()
ถูกเรียกใช้ก่อน
มิฉะนั้นจะเกิดปัญหา
super.onCreate.....
และsetContentView.....
และมันก็ขัดข้อง
ในไฟล์styles.xmlให้เปลี่ยนDarkActionBarเป็นNoActionBar
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
ตรวจสอบสิ่งนี้
ActionBar actionBar = getSupportActionBar();
actionBar.hide();
onCreate(...)
หลังsuper.onCreate(..)
และsetContentView(...)
บรรทัดเพื่อซ่อนแถบหลังจากเริ่มโปรแกรม
สิ่งนี้ใช้ได้กับฉัน
getSupportActionBar().hide();
ไปที่ Project -> app -> main -> res -> values -> styles.xml
เปลี่ยนบรรทัดนี้หากคุณต้องการลบทุกมุมมอง
`<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">`
ถึง
`<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">`
หากคุณต้องการทำให้เป็นเพียงมุมมองเดียวคุณสามารถเปลี่ยนได้ในข้อมูลรายการที่เป็นคุณ ไปที่ Android -> รายการ -> AndroidManifest.xml ทำดังต่อไปนี้:
<activity android:name"...">
android:theme=""@style/Theme.AppCompat.NoActionBar"
ในไฟล์รายการเปลี่ยนเป็น:
android:theme="@style/Theme.AppCompat.Light.NoActionBar" >
สิ่งนี้ใช้ได้ผลสำหรับฉันในการvalues/styles.xml
เพิ่มรายการ:
`<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>`
<style name="no_title" parent="AppTheme">
<item name="android:windowNoTitle">true</item>
<item name="android:windowContentOverlay">@null</item>
</style>
คุณสามารถเปลี่ยนชื่อ = "---------"
เปิด Androidmaifest.xm
ค้นหา android: theme = "@ style / AppTheme" เปลี่ยนเป็น android: theme = "@ style / no_title"
คลิกเลือกธีมบนแถบเมนู (เป็นสีเขียวใกล้กับ MainActivity)
สำหรับมือใหม่อย่างฉัน แค่ทำในสิ่งที่ฉันพูดจากโครงการ Android ของคุณ
แอป -> res -> ค่า -> style.xml
แทนที่รหัสนี้
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
</resources>
สนุก.
ลบสิ่งต่อไปนี้จาก activity_main.xml
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:popupTheme="@style/AppTheme.PopupOverlay"/>
ทำสิ่งนี้ในไฟล์รายการของคุณ:
<application
android:icon="@drawable/icon"
android:label="@string/app_name"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen">
android:theme="@android:style/Theme.DeviceDefault.NoActionBar.Fullscreen"
ตรวจสอบให้แน่ใจว่าคุณใช้ api ระดับต่ำสุด 14
this.requestWindowFeature (Window.FEATURE_NO_TITLE);
ใน onCreate () ใช้งานได้!
ลองเปลี่ยนสไตล์เป็น NoActionBar หากไม่ได้ผลให้เพิ่มรหัสนี้ในกิจกรรมหลักของคุณ
protected void onCreate(Bundle savedInstanceState) {
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
super.onCreate(savedInstanceState);
ActionBar actionBar = getSupportActionBar();
actionBar.hide();
setContentView(R.layout.activity_main);
}
สิ่งนี้ได้ผลสำหรับฉันฉันหวังว่างานนี้จะให้คุณเช่นกัน
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.activity_main);
}
วิธีที่ดีที่สุดคือใช้ฟังก์ชัน actionbar setTitle()
หากคุณต้องการแสดงโลโก้หรือมีสิ่งอื่น ๆ ใน actionBar แต่ไม่ต้องการเห็นชื่อแอปเขียนโค้ดนี้ใน MainActivity.java หรือที่ใดก็ได้ที่คุณต้องการซ่อนชื่อในonCreate
:
android.support.v7.app.ActionBar actionBar = getSupportActionBar();
actionBar.setDisplayShowHomeEnabled(true);
actionBar.setIcon(R.mipmap.full_white_logo_m); // display logo
actionBar.setTitle(""); // hide title
วิธีนี้แอปของคุณจะไม่มีเหตุขัดข้อง
เพียงใช้setTitle(null)
ด้านบน
toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
ชื่อเรื่องจะหายไปจากนั้นคุณสามารถใช้โลโก้ที่คุณเลือกได้ .....
วิธีที่ง่ายที่สุด: เพียงดับเบิลคลิกที่ปุ่มนี้แล้วเลือก "NoTitleBar";)
ฉันประสบปัญหาเดียวกับคุณและแก้ปัญหานี้ได้เพียงแค่เปลี่ยนคลาสที่ฉันขยาย
//you will get the app that does not have a title bar at the top.
import android.app.Activity;
public class MainActivity extends Activity
{}
//you will get the app that has title bar at top
import androidx.appcompat.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity
{}
ฉันหวังว่านี่จะช่วยแก้ปัญหาของคุณได้
ในAndroidManifest.xml
แอปพลิเคชันของคุณคุณจะพบandroid:theme
ตัวอย่างเช่นตั้งค่าเป็น@style/AppTheme
ตอนนี้ไปที่styles.xml
ค้นหาแท็กสไตล์ตรวจสอบให้แน่ใจว่าชื่อถูกตั้งค่าให้AppTheme
เหมือนกับในรายการและตั้งค่าพาเรนต์เป็นandroid:Theme.Holo.Light.NoActionBar
(ทำเช่นนี้ในสไตล์ (v21) หากคุณมีในโปรเจ็กต์ของคุณ)
<style name="AppTheme" parent="android:Theme.Holo.Light.NoActionBar">
<!-- ... -->
</style>
เพียงโทร setTitle(null);
เข้า onCreate ()
ลอง: toolbar.setTitle ("");
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = findViewById(R.id.toolbar);
toolbar.setTitle("");
setSupportActionBar(toolbar);
}
ในการลบแถบชื่อเรื่อง (ซึ่งหมายความว่าแถบมีชื่อแอปของคุณ) ออกจากกิจกรรมฉันเพียงแค่เพิ่มบรรทัดด้านล่างในกิจกรรมนั้นในmanifests\AndroidManifest.xml
:
android:theme="@style/AppTheme.NoActionBar"
ตอนนี้ควรมีลักษณะดังนี้
<activity
android:name=".MyActivity"
android:theme="@style/AppTheme.NoActionBar"></activity>
หวังว่าจะเป็นประโยชน์
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getSupportActionBar().hide();
setContentView(R.layout.activity_main);
เพียงแค่ใส่getSupportActionBar().hide();
ระหว่างsuper.onCreate
และsetContentView
วิธีการ