有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

选项卡内的java 安卓工具栏

我想在我的一个选项卡中创建一个工具栏,但没有任何东西适合我。这能做到吗?我目前有一个工具栏上面我的标签,但我需要它出现在第一个标签

以下是代码(选项卡上方的工具栏):

import ...

public class MainActivity extends ActionBarActivity {

Toolbar toolbar;
ViewPager pager;
ViewPagerAdapter adapter;
SlidingTabLayout tabs;
CharSequence Titles[] = {"Projects", "People", "Files"};
int Numboftabs = 3;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    toolbar = (Toolbar) findViewById(R.id.tool_bar);
    setSupportActionBar(toolbar);

    adapter = new ViewPagerAdapter(getSupportFragmentManager(), Titles, Numboftabs);
    pager = (ViewPager) findViewById(R.id.pager);
    pager.setAdapter(adapter);
    tabs = (SlidingTabLayout) findViewById(R.id.tabs);
    tabs.setDistributeEvenly(true); 
    tabs.setViewPager(pager);
}


@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.menu_primary, menu);
    return true;
}

final ArrayList<String> listItems = new ArrayList<String>();

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    int id = item.getItemId();

    if (id == R.id.addButton) {
        final TextView noProject = (TextView) findViewById(R.id.NOPROJECT);
        final ListAdapter addAdapter = new ArrayAdapter<String>(this,
                R.layout.list_item, R.id.listFrame, listItems);
        final ListView lv = (ListView) findViewById(R.id.lv);
        lv.setAdapter(addAdapter);

        noProject.setVisibility(View.GONE);
        lv.setVisibility(View.VISIBLE);
        listItems.add("New Project");

        lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                Intent switchToEdit = new Intent(MainActivity.this,
                        TeamCreate.class);
                startActivity(switchToEdit);
            }
        });
    }
    return super.onOptionsItemSelected(item);
}
}

第一个选项卡:

import ...

public class Tab1 extends Fragment {

@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
    View v =inflater.inflate(R.layout.tab_1,container,false);
    return v;
}
}

共 (1) 个答案

  1. # 1 楼答案

    我在一个非标准的工具栏和标签上也遇到了类似的挑战,并克服了它,尽管坦率地说,结果看起来很奇怪。您可能可以使用类似的技术让工具栏在选项卡下工作,但它可能会让用户挠头。您的技术将有两个工具栏,一个保存TabLayout小部件,另一个位于ViewPager中的片段内

    我在我的应用程序中使用“材质设计”选项卡查看细节。在我为平板电脑创建两个窗格的主细节视图之前,它看起来还不错。然后,我遇到了一个问题,即选项卡希望直接位于工具栏下方,但没有明显的方式来拥有主&;详细信息共享工具栏,选项卡仅显示在屏幕的详细信息部分下

    我是通过以下方式实现的:

    1. 在styles中创建“NoActionBar”样式。xml,然后在主布局中使用“android:theme=“@style/AppTheme”引用它

      <!  Turn off normal application bar so we can put our toolbars where we please.
       Do this by replacing "Theme.AppCompat.Light.DarkActionBar" with NoActionBar
       per http://www.truiton.com/2015/04/android-action-bar-dialog-using-toolbar/  >
      <style name="AppTheme" parent="MaterialTheme.Base"/>
      <style name="MaterialTheme.Base" parent="Theme.AppCompat.Light.NoActionBar">
      <item name="windowNoTitle">true</item>
      <! We will be using the toolbar so no need to show ActionBar >
      <item name="windowActionBar">false</item>
      
    2. 扔机器人。支持设计小装置。协调布局,使用线性布局

    3. 下面是一个片段,其中的工具栏包含的选项卡只占屏幕的一部分,而不是整个宽度。请注意,工具栏上有“app:layout_scrollFlags=“scroll | enterally”:

        <FrameLayout android:id="@+id/detail_container"
               android:layout_width="0dp"
               android:layout_height="match_parent"
               android:layout_gravity="end"
               android:layout_weight="2"
               tools:name="com.android.bazemom.popularmovies.TabContainerFragment"
      >
      <!  second toolbar that will be used for the tabs  >
      <android.support.v7.widget.Toolbar
          android:id="@+id/toolbar"
          xmlns:android="http://schemas.android.com/apk/res/android"
          xmlns:app="http://schemas.android.com/apk/res-auto"
          android:layout_width="match_parent"
          android:layout_height="wrap_content"
          android:background="?attr/colorPrimary"
          android:minHeight="?attr/actionBarSize"
          app:layout_scrollFlags="scroll|enterAlways"
          />
      
      <android.support.design.widget.TabLayout
          android:id="@+id/tabanim_tabs"
          android:layout_width="match_parent"
          android:layout_height="wrap_content"
          />
      
      <!  Helps handing the Fragments to load for each Tab  >
      <android.support.v4.view.ViewPager
          android:id="@+id/tabanim_viewpager"
          android:layout_width="match_parent"
          android:layout_height="match_parent"
          app:layout_behavior="@string/appbar_scrolling_view_behavior"/>
      

    以下是宽屏平板电脑上的主细节视图。标签以绿色圈出。带有操作的工具栏位于选项卡上方。 wide tablet screen capture showing tabs using only part of screen width.