2011-10-23 13 views
11

Tôi rất mới để lập trình Android, và tôi đã đọc ở khắp mọi nơi và tôi dường như không tìm thấy giải pháp nào.Có thể cho TextView Marquee trong một Widget mở rộng AppWidgetProvider không?

Vấn đề cơ bản là tôi có một TextView trong một tiện ích và tôi muốn văn bản cuộn khi văn bản dài hơn TextView layout_width. Đây là mã của tôi trong layout_widget.xml

<TextView android:id="@+id/fact" android:layout_width="200dp" 
      android:text="Loading... More text to see if it spans or not and want more" 
      android:singleLine="true" 
      android:ellipsize="marquee" 
      android:marqueeRepeatLimit ="marquee_forever" 
      android:scrollHorizontally="true" 
      android:focusable="true" 
      android:focusableInTouchMode="true" /> 

Bây giờ tôi đọc rằng tôi phải làm cho TextView trở nên tập trung, mà tôi đã làm. Tôi cũng đã đọc rằng bạn cần thiết lập thuộc tính setSelected (true) và đây là nơi tôi đang cố gắng thiết lập. Trong hoạt động mặc định của tôi (trong AndroidManifest.xml) tôi có mã sau đây.

  @Override 
      public void onCreate(Bundle savedInstanceState) { 
       super.onCreate(savedInstanceState); 
       setContentView(R.layout.widget_layout); 
       findViewById(R.id.fact).setSelected(true); 
       setContentView(R.layout.main); 
      } 

Phần dưới đây được sử dụng để thiết lập các nội dung để các widget_layout.xml và sau đó thiết lập thuộc tính TextView cho setSelected true

   setContentView(R.layout.widget_layout); 
       findViewById(R.id.fact).setSelected(true); 

sau đó tôi trả lại contentView trở lại main.xml

Bây giờ tôi đoán điều này là sai và đây không phải là cách nó nên được thực hiện. Nhưng tôi tự hỏi nếu nó có thể được thực hiện. Tôi cũng đọc rằng nếu bạn có thể ghi đè lên Khung, bạn có thể đặt các thuộc tính của riêng mình vào, ví dụ như ScrollView, điều này có đúng không? Ngoài ra, tôi đang sử dụng phiên bản SDK 7.

Tôi đánh giá cao sự giúp đỡ mà tôi nhận được, cảm ơn tất cả!

Chỉnh sửa: Bằng cách xóa setContentView (R.layout.main); khi khởi chạy ứng dụng thông qua việc vẽ ứng dụng, văn bản sẽ cuộn, nhưng tiện ích thì không. Loại dẫn tôi đến đó một widget không thể có một vùng chọn ??? Có ai có một marquee làm việc trên một widget ??

Chỉnh sửa2: Đã giải quyết. Đây là cách nó được thực hiện

Trong xml cho chế độ xem văn bản, bạn cần phải có thẻ Về cơ bản, tôi nghĩ giống như getSeleted (true);

Vì vậy, các mã nên được như sau:

<TextView android:id="@+id/fact" android:layout_width="200dp" 
      android:text="Loading... More text to see if it spans or not and want more" 
      android:singleLine="true" 
      android:ellipsize="marquee" 
      android:marqueeRepeatLimit ="marquee_forever" 
      android:scrollHorizontally="true" 
      android:focusable="true" 
      android:focusableInTouchMode="true" 
      android:duplicateParentState="true"> 
     <requestFocus android:focusable="true" android:focusableInTouchMode="true" 
      android:duplicateParentState="true" /> 
    </TextView> 
+0

Chào mừng bạn đến Stack Overflow! Hãy nhớ chấp nhận câu trả lời nếu câu trả lời giải quyết vấn đề của bạn. –

+0

cổ vũ nhưng giải pháp không hoạt động – Springy

+0

là điều này thực sự làm việc cho u? bởi vì tôi không thể làm cho nó hoạt động ... – Paul

Trả lời

27

Đã giải quyết.Đây là cách nó được thực hiện

Trong xml cho chế độ xem văn bản, bạn cần phải có thẻ Về cơ bản, tôi nghĩ giống như getSeleted (true);

Vì vậy, các mã nên được như sau:

<TextView android:id="@+id/fact" android:layout_width="200dp" 
     android:text="Loading... More text to see if it spans or not and want more" 
     android:singleLine="true" 
     android:ellipsize="marquee" 
     android:marqueeRepeatLimit ="marquee_forever" 
     android:scrollHorizontally="true" 
     android:focusable="true" 
     android:focusableInTouchMode="true" 
     android:duplicateParentState="true"> 
    <requestFocus android:focusable="true" android:focusableInTouchMode="true" 
     android:duplicateParentState="true" /> 
</TextView> 
+0

Cảm ơn bạn đã chia sẻ Thông tin tuyệt vời – Diljeet

+0

Công trình này tuyệt vời! Tuy nhiên nó phá vỡ sự kiện bấm của tôi, tôi có textview của tôi chồng chéo một ImageView bên trong một RelativeLayout. Bất kỳ ý tưởng làm thế nào để giải quyết điều này? –

+0

Không quá chắc chắn, có thể bạn phải giới hạn kích thước. – Springy

0

Bạn đang kêu gọi setContentView hai lần:

setContentView(R.layout.widget_layout); 
findViewById(R.id.fact).setSelected(true); 
setContentView(R.layout.main); 

hoạt động của bạn chỉ có thể có một bố cục. Nếu widget_layout là bố cục cho tiện ích của bạn bao gồm chế độ xem văn bản, thì bạn không muốn số thứ hai setContentView.

+0

Vâng tôi biết. Từ cách tôi hiểu (và có thể là sai tôi có thể nói), khi bạn nhấp vào ứng dụng trên bản vẽ ứng dụng, thao tác này sẽ mở Hoạt động được liên kết với AndroidManifest. Bây giờ trong Activity này tôi muốn nó sử dụng main.xml. Vấn đề tôi có là tôi cần sử dụng một lớp Activity trong đó onCreate() được gọi là nơi nó đang xem nội dung layout_widget.xml. Đó là lý do tại sao tôi gọi layout_widget đầu tiên để tôi có thể thiết lập thuộc tính cho layout_widget, và sau đó hoàn nguyên nó trở lại nội dung. Tôi biết nó không có vẻ đúng nhưng tôi không biết làm cách nào khác ... – Springy

+0

Xin chào, tôi đã giải quyết được vấn đề. Đang đăng. Chỉnh sửa bài đăng ở trên về cách điều này có thể đạt được. – Springy

1

enter image description here

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" > 

<TextView 
    android:id="@+id/textview" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentLeft="true" 
    android:layout_centerVertical="true" 
    android:ellipsize="marquee" 
    android:fadingEdge="horizontal" 
    android:lines="1" 
    android:marqueeRepeatLimit="marquee_forever" 
    android:scrollHorizontally="true" 
    android:singleLine="true" 
    android:text="***************Android Dhina Marquee effect in textview ***************************** " 
    android:textColor="#9bebe4" /> 

để biết thêm tài liệu tham khảo bấm vào đây http://androiddhina.blogspot.in/2015/10/marquee-effect-in-android-textview.html

Các vấn đề liên quan