<LinearLayout
                        android:id="@+id/app_video"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:orientation="vertical"
                        android:focusable="true"
                        android:focusableInTouchMode="true"
                        android:nextFocusRight="@+id/app_photo"
                        android:nextFocusLeft="@+id/app_photo"
                         >
                        <ImageView
                                android:id="@+id/video_icon"
                                android:src="@drawable/video_selector"
                                android:duplicateParentState="true"
                                style="@style/MainItemImageStyle"
                                android:paddingTop="170dip"
                                android:paddingLeft="120dip"
                                >
                        </ImageView>
                        <TextView
                                android:paddingTop="0dip"
                                android:duplicateParentState="true"
                                android:paddingLeft="120dip"
                                android:id="@+id/text_video"
                                android:singleLine="true"
                                style="@style/HomeTextStyle"
                                android:text="@string/subtitle_video"/>
           
                     </LinearLayout>
                     <LinearLayout
                        android:id="@+id/app_photo"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:orientation="vertical"
                        android:focusable="true"
                        android:focusableInTouchMode="true"
                        android:nextFocusRight="@+id/app_video"
                        android:nextFocusLeft="@+id/app_video"
                         >
                        <ImageView
                                android:id="@+id/photo_icon"
                                android:src="@drawable/video_selector"
                                android:duplicateParentState="true"
                                style="@style/MainItemImageStyle"
                                android:paddingTop="170dip"
                                android:paddingLeft="120dip"
                                >
                        </ImageView>
                        <TextView
                                android:paddingTop="0dip"
                                android:duplicateParentState="true"
                                android:paddingLeft="120dip"
                                android:id="@+id/text_video"
                                android:singleLine="true"
                                style="@style/HomeTextStyle"
                                android:text="@string/subtitle_photo"/>
           
                     </LinearLayout>以下是TextView的样式<style name="HomeTextStyle">
        <item name="android:layout_width">fill_parent</item>
        <item name="android:layout_height">wrap_content</item>        <item name="android:textColor">@drawable/main_item_text</item>
        <!--new add-->
        <item name="android:lines">1</item>
        <item name="android:ellipsize">marquee</item>
        <item name="android:marqueeRepeatLimit">marquee_forever</item>        <item name="android:textSize">30sp</item>
        <item name="android:gravity">center</item>
        <item name="android:textStyle">bold</item>
        <item name="android:focusable">true</item>
        <item name="android:focusableInTouchMode">true</item>
    </style>我现在设置的是两个LinearLayout可以左右切换聚焦,相应的图片会变(这个不用管),textview过长的时候没有跑马灯效果。
我的意思是当这个TextView的父标签被聚焦的时候,TextView也会被聚焦,因为我设置了android:focusable=true,但是没有跑马灯的效果,请教大家了如何才能实现这个跑马灯

解决方案 »

  1.   

    Ellipsize is broken (go vote on the bug report, especially since they claim it's not reproducible) so you have to use a minor hack. Use:android:inputType="text"
    android:maxLines="1"on anything you want to ellipsize. Also, don't use singleLine, it's been deprecated.
      

  2.   

    If it dose not work, Please try to use android:lines="1" and android:scrollHorizontally="true" instead of 
    android:singleLine="true"
      

  3.   

    为何不行?当TextView 得到focus后才会有marquee的效果。你具体是遇到了什么问题?
    下面是我做的测试,你可以参考下。
    package com.alex.hyperdialog;import android.app.Activity;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.TextView;public class MarqueeTest extends Activity{    private TextView mTestView;    @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.marquee_test_layout);
            mTestView = (TextView) findViewById(R.id.marquee_view);
        }    public void onTextViewClick(View v) {
            mTestView.requestFocus();
        }
    }
    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/container"
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent">    <TextView android:id="@+id/marquee_view"
            android:layout_width="fill_parent" 
            android:layout_height="wrap_content" 
            android:text="marquee test marquee test marquee test marquee test marquee test marquee test marquee test marquee test marquee test marquee test marquee test marquee test"
            android:maxLines="1"
            android:scrollHorizontally="true"
            android:ellipsize="marquee"
            android:marqueeRepeatLimit="marquee_forever"
            android:onClick="onTextViewClick"
            android:focusable="true"
            android:focusableInTouchMode="true"/></LinearLayout>当点击textview之后,在onClick函数中让textView 获得focus ,这时就可以看到marquee的效果了。