我对如何在应用程序中从ActionBar
更改为toolbar
感到困惑。我看到很多文档,我找不到解决问题的方法。欢迎任何有关我的代码的帮助。我需要更改新工具栏的所有actionbar
(已弃用),我无法在我所拥有的类中设置工具栏。问题的线索在我的扩展或实现中。我不知道,谢谢你的建议!
public class Quizz_View extends FragmentActivity implements ActionBar.TabListener {
private ViewPager viewPager;
private TabsPagerAdapter mAdapter;
private ActionBar actionBar;
private DrawerLayout leftDrawer;
private ListView drawerListView;
private ActionBar ldActionBar;
private Toolbar toolBar;
private ActionBarDrawerToggle abDrawerToggle;
// private ArrayList<Class_Questions> questionsList = new
// ArrayList<Class_Questions>();
GridView gridView;
float xInicial;
float yInicial;
float xActual;
float yActual;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.view_pager);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
//setSupportActionBar(toolbar);
//menu del toolbar
//toolbar.inflateMenu(R.menu.MENU);
//toolbar.setTitle("AD NORMA");
//toolbar.setSubtitle("INGENIAT");
Button reply = (Button) findViewById(R.id.replyBtn);
reply.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
}
});
final Button finish = (Button) findViewById(R.id.finishBtn);
finish.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
}
});
finish.setVisibility(View.INVISIBLE);
/********************/
actionBar = getActionBar();
actionBar.setDisplayHomeAsUpEnabled(true);
actionBar.setDisplayShowHomeEnabled(true);
// get ListView defined in activity_main.xml
drawerListView = (ListView) findViewById(R.id.left_drawer);
// crea_menu_navegacion();
// Set the adapter for the list view
// drawerListView.setAdapter();
leftDrawer = (DrawerLayout) findViewById(R.id.drawer_layout);
abDrawerToggle = new ActionBarDrawerToggle(this, leftDrawer, R.drawable.ic_drawer, R.string.drawer_open, R.string.drawer_close);
leftDrawer.setDrawerListener(abDrawerToggle);
getActionBar().setDisplayHomeAsUpEnabled(true);
leftDrawer.setDrawerShadow(R.drawable.drawer_shadow, GravityCompat.START);
// drawerListView.setOnItemClickListener(new DrawerItemClickListener());
/***********************/
// Inicialización
ArrayList<Integer> inte = new ArrayList<Integer>();
viewPager = (ViewPager) findViewById(R.id.pager);
// ArrayList<Integer> pageNumber = new ArrayList<Integer>();
actionBar = getActionBar();
try {
// ENTRA A PAGINAS
JSONObject jsonQuiz = new JSONObject(stringQuiz);
jsonPaginas = jsonQuiz.getString("Paginas");
JSONArray jsn = new JSONArray(jsonPaginas);
mAdapter = new TabsPagerAdapter(getSupportFragmentManager(), jsonPaginas);
for (Integer i = 0; i < jsn.length(); i++) {
actionBar.addTab(actionBar.newTab().setText("Página " + (i + 1)).setTabListener(this));
}
} catch (Exception e) {
}
viewPager.setAdapter(mAdapter);
actionBar.setHomeButtonEnabled(false);
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageSelected(int position) {
if (position >= 5)
finish.setVisibility(View.VISIBLE);
else
finish.setVisibility(View.INVISIBLE);
actionBar.setSelectedNavigationItem(position);
}
@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {
}
@Override
public void onPageScrollStateChanged(int arg0) {
}
});
}
private ActionBar getSupportActionBar() {
return null;
}
@Override
public void onTabReselected(Tab tab, FragmentTransaction ft) {
}
@Override
public void onTabSelected(Tab tab, FragmentTransaction ft) {
viewPager.setCurrentItem(tab.getPosition());
}
@Override
public void onTabUnselected(Tab tab, FragmentTransaction ft) {
}
}
和XML
<android.support.v4.widget.DrawerLayout /android"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<android.support.v4.view.ViewPager
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
</android.support.v4.view.ViewPager>
<include
android:id="@+id/toolbarr"
layout="@layout/toolbarex"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:textSize="28sp" />
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:gravity="bottom"
android:textSize="28sp" />
<TextView
android:id="@+id/textView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:gravity="center"
android:textSize="28sp" />
<TextView
android:id="@+id/textView4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:gravity="center_horizontal"
android:textSize="28sp" />
<Button
android:id="@+id/replyBtn"
style="@style/buttons"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_marginBottom="31dp"
android:layout_marginLeft="20dp"
android:text="Responder" />
<Button
android:id="@+id/finishBtn"
style="@style/buttons"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:layout_marginBottom="18dp"
android:layout_marginRight="26dp"
android:text="Terminar" />
<ListView
android:id="@+id/left_drawer"
android:layout_width="240dp"
android:layout_height="match_parent"
android:layout_gravity="start"
android:background="@android:color/darker_gray"
android:choiceMode="singleChoice"
android:divider="@android:color/background_dark"
android:dividerHeight="1dp" />
答案 0 :(得分:1)
在布局中添加工具栏:
<android.support.v7.widget.Toolbar
android:layout_height=”wrap_content”
android:layout_width=”match_parent”
android:minHeight=”@dimen/triple_height_toolbar”
app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light" />
在styles.xml中更改以下内容以删除操作栏
<style name="AppTheme" parent="@style/Theme.AppCompat.Light.NoActionBar">
<item name="windowActionBar">false</item>
</style>
MainActivity.java中的
Toolbar toolbar = (Toolbar) findViewById(R.id.tool1);
setSupportActionBar(toolbar);
toolbar.setTitle("ToolBar Demo");
toolbar.setLogo(R.drawable.ic_launcher);
答案 1 :(得分:0)
将工具栏Xml代码放在Viewpager之前。 ViewPager可能正在占据整个屏幕高度,工具栏正在落后于它。
只需将以下代码放在viewpager之前,而不是之后。
<include
android:id="@+id/toolbarr" layout="@layout/toolbarex"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
答案 2 :(得分:0)
一个澄清:使用新版本的支持库,您应该使用AppCompatActivity
步骤1:使用NoActionBar父主题。
<!-- Base application theme. -->
<style name="AppTheme" parent="@style/Theme.AppCompat.Light.NoActionBar">
第2步:从AppCompatActivity中获取您的活动。
public class MainActivity extends AppCompatActivity
第3步:将工具栏添加到您的层次结构中。
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/>
步骤4:将工具栏附加到AppCompatActivity。
在MainActivity中:
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
如果您愿意,现在可以使用getSupportActionBar()像ActionBar一样使用工具栏。
答案 3 :(得分:0)
以下是代码。
Build.Gradle 文件
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:23.0.1'
}
<强> styles.xml 强>
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
</style>
</resources>
创建新的布局文件 toolbar.xml
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.Toolbar
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/toolbar"
android:minHeight="?attr/actionBarSize"
android:background="@color/primary"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"/>
<强> activity_main.xml中强>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
tools:context="com.ahotbrew.toolbar.MainActivity">
<include layout="@layout/toolbar"/>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin" >
<TextView
android:text="@string/hello_brew"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</RelativeLayout>
</LinearLayout>
MainActivity.java
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
}
这是您创建工具栏的方式。 该示例来自http://www.ahotbrew.com/android-toolbar-example/
如果您需要在底部显示工具栏,那么您将在链接中找到代码段。