最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

第五章 用戶界面基礎(chǔ)(操作欄與Fragment)

2018-11-06 21:00 作者:swiss126  | 我要投稿

參考資料:

《Android應(yīng)用程序開發(fā)》ISBN 9787302283164

參考軟件:

Android Studio、Eclipse+ADT、Android SDK、JDK

操作欄與Fragment

操作欄ActionBar

一、ActionBar介紹

ActionBar是位于Activity頂部,用于顯示Activity的圖標(biāo),標(biāo)題,以及菜單的??捎糜趯?dǎo)航等功能,廣泛應(yīng)用于View的交互。ActionBar可分為三部分,分別是第一Icon、第二Item、第三overflow按鈕。如圖

二、如何添加ActionBar。

(ActionBar 是在Android?3.0(API11)中加入到SK中的,想在低版本中使用ActionBar使用Support Library v7。)

1、新建activity繼承自AppCompatActivty.

package?com.example.ch06;
?import?android.app.ActionBar;
?import?android.support.v7.app.AppCompatActivity;
?import?android.os.Bundle;
?public class?MainActivity?extends?AppCompatActivity {
?????@Override
?????protected void?onCreate(Bundle savedInstanceState) {
?????????super.onCreate(savedInstanceState);
???????? setContentView(R.layout.activity_main);??????? ?
???? }
?}

?2、實(shí)現(xiàn)Theme.AppCompat.Light.DarkActionBar主題?

<?xml version="1.0"?encoding="utf-8"?>
?<manifest?xmlns:android="http://schemas.android.com/apk/res/android" ?package="com.example.ch06">
???? <application?android:allowBackup="true" ?android:icon="@mipmap/ic_launcher"
?????????android:label="@string/app_name" ?android:roundIcon="@mipmap/ic_launcher_round"
?????????android:supportsRtl="true" ?android:theme="@style/AppTheme">
???????? <activity?android:name=".MainActivity">
???????????? <intent-filter>
???????????????? <action?android:name="android.intent.action.MAIN" ?/>
???????????????? <category?android:name="android.intent.category.LAUNCHER" ?/>
???????????? </intent-filter>
???????? </activity>
???? </application>
?</manifest>

3、下面為大家圖解一下theme主題配置文件中的樣式都有哪些,前人總結(jié)的。


4、最終效果圖如下

三、移除ActionBar。

android.support.v7.app.ActionBar actionBar = getSupportActionBar();
?actionBar.hide();

四、修改actionBar的樣式圖標(biāo)

ActionBar的標(biāo)題默認(rèn)是繼承了Applicition和Activity的lable屬性,所以只需要修改activity的lable屬性即可。值得一提的是,老的版本中修改icon也是默認(rèn)繼承自logo屬性,但是發(fā)現(xiàn)前段時(shí)間更新之后就無法顯示了,需要代碼中設(shè)定。?

//得到actionBar,注意我的是V7包,使用getSupportActionBar()
?android.support.v7.app.ActionBar ?actionBar = getSupportActionBar();
?//在使用v7包的時(shí)候顯示icon和標(biāo)題需指定一下屬性。
?actionBar.setDisplayShowHomeEnabled(true);
?actionBar.setLogo(R.mipmap.ic_launcher);
?actionBar.setDisplayUseLogoEnabled(true);
?setContentView(R.layout.activity_main);

五、添加item和overfloy。

1、把所有的action item定義在menu的資源文件中。showAsAction(此item如何顯示在actionBar上) icon(圖標(biāo))title(標(biāo)題)。showAsAction屬性,never不顯示在actionBar上,ifRoom如果有空間就顯示,沒空間就顯示在overflow上,always只顯示在actionbar上。

<?xml version="1.0"?encoding="utf-8"?>
?<menu?xmlns:android="http://schemas.android.com/apk/res/android"
?????xmlns:app="http://schemas.android.com/apk/res-auto">
???? <item
?????????android:id="@+id/create_new"
?????????app:showAsAction="always"
?????????android:title="新建文件">
???? </item>
???? <item
?????????android:id="@+id/open"
?????????app:showAsAction="always"
?????????android:title="打開文件"/>
?</menu>

2、在activity中引用資源文件。

package?com.example.ch06;
?import?android.app.ActionBar;
?import?android.support.v7.app.AppCompatActivity;
?import?android.os.Bundle;
?import?android.view.Menu;
?import?android.view.MenuInflater;
?import?android.view.MenuItem;
?import?android.widget.Toast;
?
?public class?MainActivity?extends?AppCompatActivity {
?
?????@Override
?????protected void?onCreate(Bundle savedInstanceState) {
?????????super.onCreate(savedInstanceState);
?????????//得到actionBar,注意我的是V7包,使用getSupportActionBar()
?????????android.support.v7.app.ActionBar actionBar = ?getSupportActionBar();
?????????//在使用v7包的時(shí)候顯示icon和標(biāo)題需指定一下屬性。
?????????actionBar.setDisplayShowHomeEnabled(true);
???????? actionBar.setLogo(R.mipmap.ic_launcher);
???????? ?actionBar.setDisplayUseLogoEnabled(true);
???????? setContentView(R.layout.activity_main);
?
???? }
??? ?/**
????? *?@param?menu
??????
*?@return
??????
*?使用菜單
????? */
?????@Override
?????public boolean?onCreateOptionsMenu(Menu menu) {
???????? MenuInflater inflater = ?getMenuInflater();
???????? inflater.inflate(R.menu.mainmenu, menu);
?????????return super.onCreateOptionsMenu(menu);
???? }
?
?????/**
????? *?@param?item
??????
*?@return
??????
* item的點(diǎn)擊事件
????? */
?????@Override
?????public boolean?onOptionsItemSelected(MenuItem item) {
?????????switch?(item.getItemId()) {
?????????????// action with ID action_refresh was selected
?????????????case?R.id.create_new:
???????????????? Toast.makeText(this,?"刪除", Toast.LENGTH_SHORT).show();
?????????????????break;
?????????????// action with ID action_settings was selected
?????????????case?R.id.open:
???????????????? Toast.makeText(this,?"添加", Toast.LENGTH_SHORT).show();
?????????????????break;
?????????????default:
?????????????????break;
???????? }
?????????return super.onOptionsItemSelected(item);
???? }
?
?}

六、使用自定義的view添加到actionBar上

1、自定義layout_actionbar.xml

<?xml version="1.0"?encoding="utf-8"?>
?<LinearLayout?xmlns:android="http://schemas.android.com/apk/res/android"
?????
android:layout_width="match_parent" ?android:layout_height="match_parent">
???? <ImageButton?android:id="@+id/left_imbt"
?????????
android:layout_width="wrap_content"
?????????
android:layout_height="wrap_content"
?????????
android:background="@mipmap/ic_launcher"></ImageButton>
???????? <TextView?android:id="@+id/bar_title"
?????????????
android:layout_width="wrap_content"
?????????????
android:layout_height="wrap_content"
?????????????
android:textColor="#FFFFFFFF"
?????????????
android:textSize="18sp"
?????????????
android:text="標(biāo)題"> </TextView>
???????????? <TextView?android:id="@+id/right_bt"
?????????????????
android:layout_width="wrap_content"
?????????????????
android:layout_height="wrap_content"
?????????????????
android:textSize="18sp"?android:background="@null"></TextView>
?</LinearLayout>

2、在activity中引用,并且得到控件

//顯示自定義的actionBar
?actionBar.setDisplayShowCustomEnabled(true);
?View actionbarLayout = LayoutInflater.from(this).inflate(R.layout.layout_actionbar,?null);
?actionBar.setCustomView(actionbarLayout);
?bar_title?= (TextView)actionbarLayout.findViewById(R.id.bar_title);
?right_bt?= (TextView)actionbarLayout.findViewById(R.id.right_bt);
?bar_title.setText("我的任務(wù)");
?right_bt.setText("篩選");
?bar_title.setTextColor(Color.WHITE);
?right_bt.setTextColor(Color.WHITE);

Fragment

http://www.cnblogs.com/terryblog/archive/2012/02/17/2355753.html

http://blog.csdn.net/guolin_blog/article/details/8881711

1、FragmentDemo示例

利用Fragment完成橫豎屏顯示不同內(nèi)容

一、layout/activity_main.xml

<?xml version="1.0"?encoding="utf-8"?>
?<LinearLayout?xmlns:android="http://schemas.android.com/apk/res/android"
?????xmlns:app="http://schemas.android.com/apk/res-auto"
?????xmlns:tools="http://schemas.android.com/tools"
?????android:layout_width="match_parent"
?????android:layout_height="match_parent"
?????android:orientation="horizontal"
?????android:id="@+id/content"
?????tools:context="com.example.ch05.MainActivity">
?</LinearLayout>

二、com.example.ch05.MainActivity

package?com.example.ch05;
?import?android.support.v7.app.AppCompatActivity;
?import?android.os.Bundle;
?import?android.view.Display;
?public class?MainActivity?extends?AppCompatActivity {
?????@Override
?????protected void?onCreate(Bundle savedInstanceState) {
?????????super.onCreate(savedInstanceState);
???????? setContentView(R.layout.activity_main);
???????? Display defaultDisplay = ?getWindowManager().getDefaultDisplay();
?????????if(defaultDisplay.getWidth()>defaultDisplay.getHeight()){
???????????? Fragment1 fragment1 =?new?Fragment1();
???????????? ?getFragmentManager().beginTransaction().replace(R.id.content,fragment1).commit();
???????? }else{
???????????? Fragment2 fragment2 =?new?Fragment2();
???????????? ?getFragmentManager().beginTransaction().replace(R.id.content,fragment2).commit();
???????? }
???? }
?}

三、Fragment

package?com.example.ch05;
?import?android.os.Bundle;
?import?android.app.Fragment;
?import?android.view.LayoutInflater;
?import?android.view.View;
?import?android.view.ViewGroup;
?/**
??* A simple {@link?Fragment} ?subclass.
??*/
?public class?Fragment1?extends?Fragment {
?????public?Fragment1() {
?????????// Required empty public constructor
?????}
?????@Override
?????public?View onCreateView(LayoutInflater inflater, ViewGroup container,
????????????????????????????? Bundle ?savedInstanceState) {
?????????// Inflate the layout for this fragment
??????? ?return?inflater.inflate(R.layout.fragment_fragment1, container,?false);
???? }
?}

四、Fragment Layout

<FrameLayout ?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"
?????tools:context="com.example.ch05.Fragment1">
?????<!--?TODO: Update blank fragment layout?-->
?????<TextView
?????????android:layout_width="match_parent"
?????????android:layout_height="match_parent"
?????????android:text="豎屏顯示"?/>
?</FrameLayout>



第五章 用戶界面基礎(chǔ)(操作欄與Fragment)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
天台县| 龙陵县| 榆树市| 宜川县| 泸州市| 牡丹江市| 鲁甸县| 望奎县| 深泽县| 闵行区| 临漳县| 昌乐县| 天等县| 五台县| 区。| 繁昌县| 临漳县| 拉孜县| 西贡区| 拉孜县| 靖远县| 保德县| 平罗县| 蓬溪县| 夏津县| 阳曲县| 龙川县| 西城区| 博罗县| 读书| 五峰| 黑龙江省| 剑川县| 汶上县| 天柱县| 德化县| 宁波市| 娄底市| 定边县| 南宫市| 民丰县|