1. 程式人生 > >Android用RadioGroup控制元件實現Tab選項卡效果

Android用RadioGroup控制元件實現Tab選項卡效果

現在越來越多的app使用Tab選項卡的效果了,今天我們也來試試,上次我們說過用TextView控制元件來實現,但是要做選中與未選中的效果切換需要寫程式碼來實現,比較複雜,今天我們就來用RadioGroup控制元件實現,更加簡單和快捷。

RadioGroup控制元件定義如下:

<RadioGroup
        android:id="@+id/radioGroup"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom"
        android:background="@drawable/tab_bg"
        android:gravity="center_vertical"
        android:orientation="horizontal"
        android:paddingBottom="5dp"
        android:paddingTop="5dp" >

        <RadioButton
            android:id="@+id/radioHome"
            style="@style/radioStyle"
            android:checked="true"
            android:drawableTop="@drawable/selector_button_home"
            android:text="@string/home" />

        <RadioButton
            android:id="@+id/radioCar"
            style="@style/radioStyle"
            android:drawableTop="@drawable/selector_button_car"
            android:text="@string/car" />

        <RadioButton
            android:id="@+id/radioAbout"
            style="@style/radioStyle"
            android:drawableTop="@drawable/selector_button_about"
            android:text="@string/about" />
    </RadioGroup>

其中,style屬性,drawableTop屬性和text都使用xml配置的方式來定義。

selector_button_home的定義如下(新建xml的時候要選擇drawable的selector型別):

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/home_select" android:state_checked="true"></item>
    <item android:drawable="@drawable/home_unselect"></item>
</selector>


實現的效果是,當radioHome單選按鈕選中與未選中時,自動切換按鈕的圖片。另外兩個按鈕的xml定義也一樣,只不過改了圖片。

style屬性是將radio按鈕通用的屬性定義抽取出來,xml如下

    <style name="radioStyle">
        <item name="android:layout_width">match_parent</item>
        <item name="android:layout_height">wrap_content</item>
        <item name="android:layout_weight">1</item>
        <item name="android:button">@null</item>


        <item name="android:gravity">center_horizontal</item>
        <item name="android:textColor">@color/color_button</item>
        <item name="android:drawablePadding">3dp</item>
        <item name="android:textSize">12sp</item>

        <item name="android:background">@null</item>
    </style>

上面設定button屬性為@null,目的是去掉radio按鈕自帶的那個小圓圈。

而設定background屬性為@null,是為了相容低版本的手機系統,在低版本系統裡,如果不這麼設定的話,RadioGroup做的按鈕會偏移,原因是因為這個屬性預設有一張背景圖片。

而text屬性也是實現了當radio按鈕的文字效果在選中與未選中時自動切換效果,在新建xml的時候,要選擇Color List和selector


color_button.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_checked="true" android:color="#E63B53"/>
    <item android:color="#82858b"/>
</selector>

這裡實現的是,選中與未選中時,切換文字的顏色。

最終效果如下(選中時,顯示紅色圖片和文字,未選中時,顯示灰色圖片和文字):

相關推薦

AndroidRadioGroup控制元件實現Tab選項效果

現在越來越多的app使用Tab選項卡的效果了,今天我們也來試試,上次我們說過用TextView控制元件來實現,但是要做選中與未選中的效果切換需要寫程式碼來實現,比較複雜,今天我們就來用RadioGroup控制元件實現,更加簡單和快捷。 RadioGroup控制元件定義如下

Android仿微信底部實現Tab選項切換效果

在網上看了比較多的關於Tab的教程,發現都很雜亂。比較多的用法是用TitlePagerTabStrip和ViewPaper。不過TitlePagerTabStrip有個很大的缺陷,Tab裡面的內容剛進去是沒有的,要滑一次才能加載出來。而且滑動的時候,Tab裡面的內容位置

angular中的ng-repeat和ng-show來實現tab選項

new angular lis content padding col ora ack 顯示 雖然我們可以用angular中的路由來做tab選項卡,但是那會讓我們建立很多的頁面來引入,或者建立 <script type="text/ng-template" id="n

如何: DataGrid 控制元件實現驗證

利用 DataGrid 控制元件,您既可以在單元格級別也可以在行級別執行驗證。 通過單元格級別驗證,將可在使用者更新值時驗證繫結資料物件的個別屬性。 通過行級別驗證,將可在使用者提交對行的更改時驗證整個資料物件。 您也可以為驗證錯誤提供自定義的可視反饋,或使用 DataG

Android使用NumberPicker控制元件實現選擇城市,生日

本人菜鳥一枚,第一次寫技術部落格,有點小緊張,加上程式碼很亂,求不噴。 先放效果圖: 介面就這麼簡單。 然後放上程式碼: package com.example.dialog; import java.util.ArrayList;

經驗及技巧:MediaElement 控制元件實現全屏並自動旋轉至橫屏!

如何實現搜狐視訊開始一部分螢幕播放,點選後實現全屏並自動橫屏。我剛開始思路是自己控制進行旋轉,不過最後還是有些問題。其實不用那麼麻煩,方法很簡單。只要設定MediaElement的AreTransportControlsEnabled 屬性均為true即可。AreTrans

Android自定義控制元件實現圓形進度CircleProgressBar

近日有朋友問我有沒有如下圖效果的開源控制元件 , 相信大家無論是用IOS還是Android,都對這種效果不陌生,很多主流APP都會有這樣或類似的效果,之前也打算研究一下這類控制元件的程式碼,苦於一直不知道應該怎麼搜尋這種效果(就是關鍵詞)或者所搜的結

使用jq實現tab選項

選項卡 mov 選項 function spa color fun () dex jq代碼 $(‘#fenlei_title span‘).click(function() { $("#fenlei_title span").eq($(this).

js實現tab選項切換

  通過原生js實現tab切換,首先講解一下實現的原理。     1.點選按鈕首先給這個被點選的按鈕新增一個active類,給點選的改變背景色     2.點選按鈕其實就是把相應的div給顯示出來。     需要注意的是,點選按鈕,給按鈕添加了一個類和把對應的div給顯示,需要把上一個點選的按鈕顏色還原

原生js實現tab選項切換功能

本文通過兩種原生js方法實現tab選項卡切換功能 <!DOCTYPE html> <html> <head> <title>tab選項卡</title> <meta charset="utf-8"> <s

IOS開發學習筆記十六 使用UITableView控制元件實現微博列表效果

效果:專案地址 微博列表唯一需要注意的是每個條目的列表行高不一致,需要在UITableView的代理方法heightForRowAtIndexPath中動態設定行高 需要建立Module物件CZMicroBlogFrame來儲存UITableCell的子View的

CoordinatorLayout等控制元件實現Google Material Design效果

本文介紹以下很 google的UI控制元件:CoordinatorLayout、AppbarLayout、NestedScrollView以及CollapsingToolbarLayout。它們共同實現了下面這樣的效果: 初始控制元件 「Coordinat

史上最牛逼的純CSS實現tab選項,閃瞎你的狗眼

                     html檔案<!DOCTYPE html><html>    <head>        <meta charset="UTF-8">        <title>CSS3外觀漂亮淡入淡出Tab選單演示<

純JS實現tab選項切換效果

今天學到的用js寫選項卡,有高亮效果,廢話不多說,直接上程式碼吧!!! 注意事項:css程式碼中有一個隱藏其他div的屬性, display: none;這個一定要注意,要不然你寫的都會顯示出來 html程式碼: <!DOCTYPE html> <html la

Axure實現Tab選項切換功能

       這幾天用Axure畫原型圖的過程中,需要實現Tab選項卡切換的效果,但Axure中並沒有類似於Tab控制元件的部件,所以可以用Axure中的動態面板(Dynamic Panel)來實現

jQuery實現TAB選項切換特效簡單演示

本文例項為大家分享jQuery實現TAB選項卡切換特效,供大家參考,具體內容如下1、tab切換 on?123456789101112131415161718192021222324252627282930313233343536373839404142434445464748

jquery 實現tab選項功能

程式碼示例: <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <style> ul.tabs { margi

javascript 實現tab選項

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Tab選項卡</title> <style>

Android 自己定義控件實現刮刮效果 真的就僅僅是刮刮

pat 微信 protect 有一點 高仿 記錄 ren bounds size 轉載請標明出處:http://blog.csdn.net/lmj623565791/article/details/40162163 , 本文出自:【張鴻洋的博客】非常久以前也過一個htm

一個頁面多個tab選項效果

結果 菜鳥 提升 ref -a 搜索引擎 flow .cn www. 新整理同一個頁面多個tab選項卡,由於不會自己些代碼,只能從網上找現成的來改。留著備用。 共3部分,HTML、CSS、JS 暫時沒有演示地址和下載地址,以後會補上。 HTML部分 <!DOCTY