2013-06-18 23 views
8

Tôi đang cố gắng để bao gồm cách bố trí sau hai lần:android - xml - bao gồm cùng một bố trí nhiều lần không hoạt động

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:app="http://schemas.android.com/apk/res-auto" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:orientation="vertical" > 

<com.viewpagerindicator.TabPageIndicator 
    android:id="@+id/indicator" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" /> 

<android.support.v4.view.ViewPager 
    android:id="@+id/pager" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" /> 

như sau

<include 
    android:id="@+id/include1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    layout="@layout/view_pager" /> 

<include 
    android:id="@+id/include2" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    layout="@layout/view_pager" /> 

Trên thực tế, máy xem thứ hai không hoạt động nếu tôi làm như vậy ... Máy nhắn tin xem thứ hai luôn trống ... Nếu tôi sao chép bố cục view_pager và thay đổi id trong bố cục này (máy nhắn tin thành pager2 và chỉ báo thành chỉ số2) e verything hoạt động tốt. Có cách nào tốt hơn để làm điều đó không? Việc sao chép bố cục để đạt được điều đó dường như làm cho việc bao gồm vô dụng cho nhiều bao gồm cùng một bố cục ....

Tôi nhận được tham chiếu chính xác, nhưng mặc dù nó không hoạt động nếu tôi có cùng bố cục. ..

pager1= (ViewPager)(findViewById(R.id.include1).findViewById(R.id.pager)); 
pager2= (ViewPager)(findViewById(R.id.include2).findViewById(R.id.pager)); 

Tất cả mọi thứ hoạt động hoàn hảo nếu tôi sao chép bố trí ...

Edit:

tôi nghĩ rằng nó đã làm với các FragmentManager, bởi vì máy nhắn tin xem có cùng một id ... Nhưng tôi không biết làm thế nào để giải quyết một cách chính xác ...

Trả lời

2

Có thể thực hiện được. Bạn có thể thổi phồng bố cục nhiều lần, nhưng bạn phải thực hiện việc đưa vào chương trình. Xem answer cho cùng một loại câu hỏi.