Ryan's Java world!

          something about Java and opensource!

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

          但 是要顯示跑馬燈該View必需是可以取得焦點的,只有在取得焦點的情況下跑馬燈才會出現(xiàn).
          如果是組合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,由于設(shè)置了LinearLayout為focusable而TextView就沒法取得焦點了,這樣 這個TextView的跑馬燈效果就顯示不出來,就算你也設(shè)置TextView的 android:focusable="true" 也是沒用的. 這個時候就要使用addStatesFromChildren 這個屬性了,在LinearLayout中設(shè)置這個屬性,然后設(shè)置TextView的focusable="true" 就可以了.關(guān)于 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
          很厲害,你怎么想到的?如果是我根本想不到。  回復(fù)  更多評論
            

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


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


          網(wǎng)站導(dǎo)航:
           

          JSF中文技術(shù)文摘
          主站蜘蛛池模板: 榆社县| 津南区| 济阳县| 临湘市| 清河县| 丹江口市| 罗城| 齐齐哈尔市| 澄城县| 宁强县| 江川县| 合山市| 武城县| 扶余县| 四子王旗| 白河县| 洛扎县| 宁乡县| 闽清县| 叶城县| 淮滨县| 黑山县| 云龙县| 康平县| 色达县| 抚宁县| 保康县| 黄平县| 汽车| 泗洪县| 普定县| 叶城县| 安龙县| 聂拉木县| 临洮县| 东乌| 哈巴河县| 怀化市| 靖江市| 呼和浩特市| 靖宇县|