2013-05-30 2 views
-1

Я хочу добавить в приложение ScreenView, но я только получаю ошибку.Android, как добавить ScrollView

Моя раскладка:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    android:background="@color/bg" 
    android:id="@+id/mainlayout" 
    tools:context=".NwActivity" android:baselineAligned="false"> 

    <ScrollView 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" > 

     <RelativeLayout 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:id="@+id/rlA" > 

      <TextView 
       android:id="@+id/teamA" 
       android:text="@string/teamA" 
       android:textSize="24sp" 
       style="@style/Txt" /> 

      <Button 
       android:id="@+id/pAddA" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_below="@id/teamA" 
       style="@style/Txt" 
       android:text="@string/pAdd" 
       android:onClick="addA" /> 

      <EditText 
       android:id="@+id/eta0" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_below="@id/pAddA" 
       style="@style/Txt" 
       android:hint="@string/pHint" /> 

     </RelativeLayout> 

     <RelativeLayout 
      android:layout_width="wrap_content" 
      android:layout_height="match_parent" 
      android:layout_weight="1" 
      android:id="@+id/rlB" > 

      <TextView 
       android:id="@+id/teamB" 
       android:text="@string/teamB" 
       android:textSize="24sp" 
       style="@style/Txt" /> 

      <Button 
       android:id="@+id/pAddB" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_below="@id/teamB" 
       style="@style/Txt" 
       android:text="@string/pAdd" 
       android:onClick="addB" /> 

     </RelativeLayout> 

    </ScrollView> 

</LinearLayout> 

активность:

package some.program; 

import android.app.Activity; 
import android.os.Bundle; 
import android.view.View; 
import android.view.ViewGroup.LayoutParams; 
import android.widget.EditText; 
import android.widget.RelativeLayout; 

public class NwActivity extends Activity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_nw); 
    } 

    public int skid = 0; 

    public void addA(View view) { 
     if(skid < 14) { 
      skid = skid + 1; 
      //LinearLayout ll = (LinearLayout) findViewById(R.id.mainlayout); 
      RelativeLayout rl = (RelativeLayout) findViewById(R.id.rlA); 

      EditText et1 = new EditText(this); 
      et1.setHint(R.string.pHint); 
      String strID = "eta" + skid; 
      int nid = getResources().getIdentifier(strID, "id", this.getPackageName()); 
      et1.setId(nid); 

      int oskid = skid - 1; 

      int oid; 


      String resID = "eta" + oskid; 
      oid = getResources().getIdentifier(resID, "id", this.getPackageName()); 


      RelativeLayout.LayoutParams params1= new RelativeLayout.LayoutParams 
         (LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); 

      params1.addRule(RelativeLayout.BELOW, oid); 
      params1.addRule(RelativeLayout.CENTER_HORIZONTAL); 
      et1.setLayoutParams(params1); 
      et1.setTextAppearance(this, R.style.Txt); 
      rl.addView(et1); 
     } 
    } 

    public void addB(View view) { 

    } 

} 

Как я могу добавить ScrollView, что не будет делать беспорядок на моем макете? При нажатии кнопки приложение создает формы EditText. Все работает отлично, но все поля EditText не подходят для макета и не отображаются.

+0

Какая ошибка вы получаете? Пожалуйста, покажите logCat. –

+0

a scrollview не может иметь более одного ребенка – njzk2

ответ

0

Там может быть некоторыми другие вопросы в макете, некоторые из вопросов, которые я нашел в

Во-первый ScrollView принимают только один непосредственный ребенок, в то время как вы объявляете два вида НП и РЛБ в ScrollView. (Вы можете сделать его работу, поставив ScrollView в качестве основного макета и положить LinearLayout вместо ScrollView)

Во-вторых, вы должны добавить layout_width и layout_height атрибуты для ваших макетов (я думаю, вы уже декларированию в ваших МОД).

+0

Да, я объявляю ширину и высоту в стиле Txt. Работала отлично, когда я заменил ScrollView и LinearLayout. Можно ли сделать, что, когда я нажимаю кнопку кнопки, прокрутите вниз? (Извините за мой плохой английский) – user2350530