2013-03-11 1 views
0

Я создал рамку с кнопкой и 3 текстовыми изображениями внутри кнопки. Я хочу дублировать это и динамически добавлять их через java-программу один под другим.Динамическое создание и добавление фреймворков android

Код xml для того же прилагается.

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 
    <FrameLayout android:id="@+id/frameLayout1" android:layout_width="wrap_content" android:layout_height="wrap_content">   
    <Button android:layout_width="319dp" android:layout_height="130dp"/> 
    <TextView android:id="@+id/textView1" android:layout_width="wrap_content" 
     android:layout_gravity="center_horizontal" 
     android:layout_marginTop="15dp" 
     android:layout_height="wrap_content" android:text="@string/app_name"/> 
    <TextView android:id="@+id/textView2" 
     android:layout_gravity="center_horizontal" 
     android:layout_marginTop="45dp" 
     android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/app_name"/> 
    <TextView android:id="@+id/textView3" 
     android:layout_gravity="center_horizontal" 
     android:layout_marginTop="75dp" 
     android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/app_name"/> 
    </FrameLayout> 
    <FrameLayout android:id="@+id/frameLayout2" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_below="@id/frameLayout1">   
    <Button android:layout_width="319dp" android:layout_height="130dp"/> 
    <TextView android:id="@+id/textView4" android:layout_width="wrap_content" 
     android:layout_gravity="center_horizontal" 
     android:layout_marginTop="15dp" 
     android:layout_height="wrap_content" android:text="@string/app_name"/> 
    <TextView android:id="@+id/textView5" 
     android:layout_gravity="center_horizontal" 
     android:layout_marginTop="45dp" 
     android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/app_name"/> 
    <TextView android:id="@+id/textView6" 
     android:layout_gravity="center_horizontal" 
     android:layout_marginTop="75dp" 
     android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/app_name"/> 
    </FrameLayout> 
</RelativeLayout> 

Java-код для этого дублирования и добавления к концу дается,

FrameLayout f2 = (FrameLayout)findViewById(R.id.frameLayout2); 
     FrameLayout f3; 
     f3 = f2; 
     RelativeLayout.LayoutParams p = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, 
       ViewGroup.LayoutParams.WRAP_CONTENT); 
     p.addRule(RelativeLayout.BELOW, R.id.frameLayout2); 
     f3.setLayoutParams(p); 

Я хочу, чтобы 3-й раскладку кадров будет помещен ниже второго, но работает этот код, второй Рамка также не видна, может ли кто-нибудь сказать мне, где я иду не так?

+0

Это java, написав f3 = f2, вы просто ссылаетесь на f3 на f2, поэтому это не дубликат. проверьте http://stackoverflow.com/questions/9807650/dynamically-cloning-a-lingleayout-in-android –

+0

Привет, спасибо за ответ, будет ли эта работа для framelayouts ?? Я имею в виду, я не хочу клонировать весь относительный макет, но только сегмент. – rafavinu

+0

Я предполагаю, что да. –

ответ

1

Вы должны извлечь структуру фрейма в отдельный файл button_and_text.xml, а затем использовать include tag.

<RelativeLayout ...> 
    <include layout="@layout/button_and_text" android:id="@+id/frameLayout1"/> 
    <include layout="@layout/button_and_text" android:id="@+id/frameLayout2" android:layout_below="@id/frameLayout1"/> 

 Смежные вопросы

  • Нет связанных вопросов^_^