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 冰雨 閱讀(620) 評論(2)  編輯  收藏 所屬分類: Java

          Feedback

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

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


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


          網站導航:
           

          JSF中文技術文摘
          主站蜘蛛池模板: 迁安市| 璧山县| 屯门区| 西城区| 湖口县| 深圳市| 萨嘎县| 岗巴县| 沧州市| 台东市| 都匀市| 乐平市| 新乐市| 临汾市| 长宁县| 浦江县| 泸定县| 长岛县| 镇沅| 瑞昌市| 达尔| 建瓯市| 景泰县| 克什克腾旗| 凤山县| 宕昌县| 怀宁县| 资兴市| 奇台县| 丰原市| 平定县| 鸡泽县| 绥中县| 正定县| 天镇县| 盈江县| 澄迈县| 壤塘县| 怀宁县| 保德县| 迁安市|