Ryan's Java world!

          something about Java and opensource!

          BlogJava 首頁 新隨筆 聯系 聚合 管理
            51 Posts :: 25 Stories :: 59 Comments :: 0 Trackbacks
          在Android中要顯示跑馬燈是比較容易的,只要設置2個屬性就可以了:
          android:singleLine="true"
          android:ellipsize="marquee"

          但 是要顯示跑馬燈該View必需是可以取得焦點的,只有在取得焦點的情況下跑馬燈才會出現.
          如果是組合View的情況下就有問題了, 如下一個組合View:
          <?xml version="1.0" encoding="utf-8"?>
          <LinearLayout
            
          xmlns:android="http://schemas.android.com/apk/res/android"
            android:orientation
          ="vertical"
            android:gravity
          ="center_vertical"
            android:background
          ="@drawable/f_background"
            android:layout_width
          ="fill_parent"
            android:focusable
          ="true"
            android:layout_height
          ="50px">
            
          <TextView 
                
          android:id="@+id/info_text"
                android:focusable
          ="true"
                android:layout_width
          ="fill_parent"
                android:layout_height
          ="wrap_content"
                android:text
          ="test marquee .. "
                android:textColor
          ="@color/black"
                android:singleLine
          ="true"
                android:ellipsize
          ="marquee"
                android:marqueeRepeatLimit
          ="3"
                android:textSize
          ="18sp"
            
          />
            
          <TextView 
                
          android:id="@+id/date_text"
                android:layout_width
          ="fill_parent"
                android:layout_height
          ="wrap_content"
                android:layout_gravity
          ="bottom"
                android:textColor
          ="@color/gray"
                android:text
          ="2010/05/28"
                android:textSize
          ="12sp"
            
          />
          </LinearLayout>

          上面示例中2個TextView組合為一個View,由于設置了LinearLayout為focusable而TextView就沒法取得焦點了,這樣 這個TextView的跑馬燈效果就顯示不出來,就算你也設置TextView的 android:focusable="true" 也是沒用的. 這個時候就要使用addStatesFromChildren 這個屬性了,在LinearLayout中設置這個屬性,然后設置TextView的focusable="true" 就可以了.關于 addStatesFromChildren的說明:

          Sets whether this ViewGroup's drawable states also include its children's drawable states.

          可以正常顯示的代碼:
          <?xml version="1.0" encoding="utf-8"?>
          <LinearLayout
            
          xmlns:android="http://schemas.android.com/apk/res/android"
            android:orientation
          ="vertical"
            android:gravity
          ="center_vertical"
            android:background
          ="@drawable/zixun_background"
            android:layout_width
          ="fill_parent"
            android:addStatesFromChildren
          ="true"
            android:layout_height
          ="50px">
            
          <TextView 
                
          android:id="@+id/info_text"
                android:focusable
          ="true"
                android:layout_width
          ="fill_parent"
                android:layout_height
          ="wrap_content"
                android:text
          =" "
                android:textColor
          ="@color/black"
                android:singleLine
          ="true"
                android:ellipsize
          ="marquee"
                android:marqueeRepeatLimit
          ="3"
                android:textSize
          ="18sp"
            
          />
            
          <TextView 
                
          android:id="@+id/date_text"
                android:layout_width
          ="fill_parent"
                android:layout_height
          ="wrap_content"
                android:layout_gravity
          ="bottom"
                android:textColor
          ="@color/gray"
                android:text
          ="2010/05/28"
                android:textSize
          ="12sp"
            
          />
          </LinearLayout>

          posted on 2010-05-31 19:07 冰雨 閱讀(627) 評論(2)  編輯  收藏 所屬分類: Java

          Feedback

          # re: addStatesFromChildren 和跑馬燈 2010-06-12 15:27 jue
          很厲害,你怎么想到的?如果是我根本想不到。  回復  更多評論
            

          # re: addStatesFromChildren 和跑馬燈 2010-06-12 15:42 jue
          如果是其他的可以獲得焦點的控件怎么辦?比如說一個EditText和一個跑馬燈?  回復  更多評論
            


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           

          JSF中文技術文摘
          主站蜘蛛池模板: 高青县| 浪卡子县| 台州市| 金坛市| 略阳县| 瑞安市| 大冶市| 库尔勒市| 大英县| 布尔津县| 海门市| 西昌市| 崇州市| 弋阳县| 东莞市| 剑河县| 沙田区| 昌都县| 大渡口区| 布拖县| 改则县| 安丘市| 衡阳县| 嘉定区| 逊克县| 福海县| 阳山县| 象山县| 天水市| 珠海市| 西盟| 济阳县| 岗巴县| 乌拉特后旗| 东城区| 明光市| 望城县| 洪江市| 织金县| 砚山县| 永德县|