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 冰雨 閱讀(619) 評論(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ù)文摘
          主站蜘蛛池模板: 喀喇沁旗| 正镶白旗| 桂林市| 淮安市| 沽源县| 东兴市| 丹寨县| 宁夏| 甘泉县| 广灵县| 郑州市| 长汀县| 宁武县| 兰坪| 遂平县| 拜泉县| 襄垣县| 仁怀市| 启东市| 民勤县| 宁德市| 靖边县| 庆元县| 阳东县| 望奎县| 九寨沟县| 东丰县| 海宁市| 金乡县| 镇雄县| 二手房| 黑河市| 宜州市| 威远县| 天水市| 格尔木市| 华宁县| 长寿区| 宁德市| 廊坊市| 德安县|