我需要主页按钮和2个视图才能显示在我的ActionBar上。我的textView并不完全放在它应该放置的位置,主页按钮消失了。这是我得到的:
我使用的代码:
package com.example.trythis;
import android.annotation.TargetApi;
import android.app.ActionBar;
import android.app.Activity;
import android.os.Build;
import android.os.Bundle;
import android.support.v4.app.NavUtils;
import android.view.MenuItem;
@TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR1)
public class BeginGameActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main_try);
}
@Override
public boolean onOptionsItemSelected(MenuItem item)
{
switch (item.getItemId())
{
case android.R.id.home:
if(NavUtils.getParentActivityName(this) != null)
{
NavUtils.navigateUpFromSameTask(this);
}
return true;
default:
return super.onOptionsItemSelected(item);
}
}
public boolean onCreateOptionsMenu(android.view.Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
android.app.ActionBar actionBar = getActionBar();
actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD);
actionBar.setDisplayShowHomeEnabled(false);
actionBar.setDisplayHomeAsUpEnabled(true);
actionBar.setDisplayShowTitleEnabled(true);
actionBar.setTitle("Назад");
actionBar.setDisplayUseLogoEnabled(false);
actionBar.setCustomView(R.layout.actionbar);
return true;
}
}
main_try.xml:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/main_container"
android:layout_centerInParent="true">
</LinearLayout>
</RelativeLayout>
actionbar.xml:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="fill_horizontal"
android:orientation="horizontal"
>
<TextView
android:layout_toRightOf="@+id/minesLeft"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/minesLeftCounter"
android:text="asd" />
<Button
android:layout_alignParentRight="true"
android:id="@+id/refresh_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:text="@string/refresh" />
<TextView
android:id="@+id/minesLeft"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:text="@string/minesLeft" />
</RelativeLayout>
我需要改变什么?任何帮助,将不胜感激。谢谢。
答案 0 :(得分:0)
您的主页Button
因以下行而消失:
actionBar.setDisplayShowHomeEnabled(false);
将参数更改为true
。
你的布局只需要在这里和那里进行一些集中调整。此外,当您在View
上设置自定义ActionBar
时,标题将不再显示,因此我们只需将另一个TextView
添加到自定义View
即可显示标题。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_centerVertical="true"
android:textSize="20sp"
android:text="Назад" />
<TextView
android:id="@+id/minesLeft"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toStartOf="@+id/minesLeftCounter"
android:layout_centerVertical="true"
android:text="@string/minesLeft" />
<TextView
android:id="@+id/minesLeftCounter"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toStartOf="@+id/refresh_button"
android:layout_centerVertical="true"
android:text="asd" />
<Button
android:id="@+id/refresh_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:text="@string/refresh" />
</RelativeLayout>
答案 1 :(得分:0)
使用工具栏代替操作栏:
1-使用&#34; tool_bar.xml创建一个新的xml文件&#34;并添加以下代码:
<?xml version="1.0" encoding="utf-8"?>
>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TextView"
/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="my Button"
/>
2 - 转到main_try.xml并添加以下代码以包含它:
<include android:id="@+id/toolbar" layout="@layout/bar"/>
3 - 在BigenGameActivity.java中将此extends Activity
更改为extends AppCompatActivity
4 - 将此添加到您的onCreate方法中:
toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
并且结果如下: enter image description here