关于Android界面的一些问题

时间:2016-08-11 02:27:26

标签: android android-fragments appbar

拜托,有人帮助我。我有一个2大问题:

  1. 应用栏将我的左键移动到中心应用,紧跟字符串后: setSupportActionBar(mToolbar) 按钮 - 换行/换行,尝试将她包裹在RelativeLayout中,尝试设置"锚定"参数 - 没有效果 - 标题移动她然后出现。
  2. 片段显示高于fragmentContainer - 在我的appbar上。
  3. 我的想法是 - 她的底部有1个主要活动+ 3个片段更改,以及设置活动。屏幕已应用。

    我也有一个问题: 现在我使用.replace - 方法更改片段。如果我这样做,那么我发送搜索查询并接收元素列表 - 它会创建一个带有空列表的新主片段?但现在它并不重要。当然,如果存在标签,我可以通过标签获取片段。 screen

    代码。 activity_main.xml中

    <?xml version="1.0" encoding="utf-8"?>
    

    <android.support.design.widget.CoordinatorLayout
        style="@style/match">
    
        <android.support.design.widget.AppBarLayout
            style="@style/fill"
            android:theme="@style/AppTheme.AppBarOverlay">
    
            <android.support.v7.widget.Toolbar
                android:id="@+id/toolbar"
                android:layout_width="match_parent"
                android:layout_height="72dp"
                android:background="@color/colorPrimary"
                app:theme="@style/ToolBarStyle"
                app:popupTheme="@style/AppTheme.PopupOverlay"
                app:layout_collapseMode="pin">
    
                <RelativeLayout
                    style="@style/wrap">
                    <ImageView
                        android:id="@+id/settings_btn"
                        android:layout_width="64dp"
                        android:layout_height="64dp"
                        android:layout_alignParentLeft="true"
                        android:src="@drawable/servis"
                        android:contentDescription="@string/settings.title"
                        android:fitsSystemWindows="true"/>
                </RelativeLayout>
    
                <ImageView
                    android:id="@+id/logout_btn"
                    android:layout_width="24dp"
                    android:layout_height="wrap_content"
                    android:layout_gravity="right|center_vertical"
                    android:layout_marginRight="@dimen/spacing_normal_16"
                    android:layout_weight="0.5"
                    android:src="@drawable/off"
                    android:contentDescription="@string/main.logout"
                    android:cropToPadding="false"/>
            </android.support.v7.widget.Toolbar>
    
            <View
                android:layout_width="match_parent"
                android:layout_height="1dp"
                android:background="@color/black"/>
    
            <android.support.design.widget.TabLayout
                android:id="@+id/tab_layout"
                style="@style/fill"
                app:layout_scrollFlags="scroll|snap">
    
                <android.support.design.widget.TabItem
                    android:id="@+id/search_tab"
                    style="@style/wrap"
                    android:text="@string/main.search"/>
    
                <android.support.design.widget.TabItem
                    android:id="@+id/saved_tab"
                    style="@style/wrap"
                    android:text="@string/main.saved"/>
            </android.support.design.widget.TabLayout>
    
        </android.support.design.widget.AppBarLayout>
    
    
        <include layout="@layout/content"/>
    
    
    </android.support.design.widget.CoordinatorLayout>
    

    content.xml(就像在书中一样):

    <?xml version="1.0" encoding="utf-8"?>
    <FrameLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/fragmentContainer"
    style="@style/match"
    tools:context=".ui.activities.MainActivity"/>
    

    fragment_main.xml:

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
                style="@style/match">
    
    <android.support.v7.widget.RecyclerView
        android:id="@+id/audio_list"
        style="@style/recycler_view"/>
    
    ... <buttonsLayout>
    
    </RelativeLayout>
    

    MainActivity:

    public class MainActivity extends AppCompatActivity implements View.OnClickListener {
    private DataManager mDataManager;
    
    private Toolbar mToolbar;
    private ImageView mSettings, mLogout;
    private TabLayout mTabLayout;
    private TabItem mSearchTab, mSavedTab;
    private int accentColorId, primaryColorId;
    
    private String mQuery;
    
    public void setQuery(String query) {
        mQuery = query;
    }
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    
        mDataManager = DataManager.getInstance();
    
        mToolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(mToolbar);
        //mToolbar.setTextAlignment(View.TEXT_ALIGNMENT_CENTER);
        mSettings = (ImageView) findViewById(R.id.settings_btn);
        mSettings.setOnClickListener(this);
        mLogout = (ImageView) findViewById(R.id.logout_btn);
        mLogout.setOnClickListener(this);
    
        accentColorId = getResources().getColor(R.color.colorAccent);
        primaryColorId = getResources().getColor(R.color.colorPrimary);
    
        mTabLayout = (TabLayout) findViewById(R.id.tab_layout);
        mSearchTab = (TabItem) findViewById(R.id.search_tab);
        mSavedTab = (TabItem) findViewById(R.id.saved_tab);
    
        mTabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
            @Override
            public void onTabSelected(TabLayout.Tab tab) {
                if (tab.getPosition() == 0) {
                    //mSearchTab.setBackgroundColor(accentColorId);
                    //mSavedTab.setBackgroundColor(primaryColorId);
                    showFragment(SearchFragment.newInstance(mQuery), "search");
                } else if(tab.getPosition() == 1) {
                    showFragment(new SavedFragment(), "saved");
                }
            }
    
            @Override
            public void onTabUnselected(TabLayout.Tab tab) {}
    
            @Override
            public void onTabReselected(TabLayout.Tab tab) {}
        });
        mTabLayout.setTabGravity(TabLayout.GRAVITY_FILL);
    
        signIn();
    }
    
    ...
    
    private void showFragment(Fragment fragment, String tag) {
        FragmentManager fm = getFragmentManager();
        fm.beginTransaction()
            .replace(R.id.fragmentContainer, fragment, tag)
            .addToBackStack(tag)
            .commit();
    }
    

0 个答案:

没有答案