0

1 つのアクティビティで 2 つのレイアウトを動的に割り当てる際の問題

同じアクティビティ レイアウトの 2 つの水平スクロール ビューに 2 つの LinearLayout または TableRow を割り当てる必要があるロジックに取り組もうとしていますが、機能していないようです。どんな助けでも大歓迎です

これはアクティビティのコードです:

public class ViewTestActivity extends Activity implements OnClickListener {
    /** Called when the activity is first created. */
    LinearLayout LinearLayoutInScrollView;
    LinearLayout Inner1HorizontalLinearLayout;
    LinearLayout Inner2HorizontalLinearLayout;
    ScrollView ScrollViewMain;
    HorizontalScrollView horizontalScrollViewOfMain;
    TextView textViewOne;
    TextView textViewTwo;
    Button verticalScrollTriggerButton;
    Button horizontalScrollTriggerButton;

    @Override    

public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);

            LinearLayoutInScrollView = (LinearLayout) findViewById(R.id.MainscrollViewLayout);

            horizontalScrollViewOfMain = new HorizontalScrollView(this);
            LinearLayoutInScrollView.addView(horizontalScrollViewOfMain);



            verticalScrollTriggerButton = new Button(this);
            verticalScrollTriggerButton.setText("CheckVerticalScroll");
            verticalScrollTriggerButton.setOnClickListener(new OnClickListener() {

                public void onClick(View v) {
                    // TODO Auto-generated method stub
                    for (int i = 0; i < 30; i++) {
                        textViewOne = new TextView(getApplicationContext());
                        textViewOne.setBackgroundColor(0xaa000000);
                        textViewOne.setText("This is Dynamic");
                        LinearLayoutInScrollView.addView(textViewOne);
                    }

                }
            });

            horizontalScrollTriggerButton = new Button(this);
            horizontalScrollTriggerButton.setText("CheckHorizontalScroll");
            horizontalScrollTriggerButton.setOnClickListener(new OnClickListener() {
                public void onClick(View v) {
                    // TODO Auto-generated method stub
                    Inner1HorizontalLinearLayout = new LinearLayout(getApplicationContext());
                    Inner2HorizontalLinearLayout = new LinearLayout(getApplicationContext());               
                    for (int i = 0; i < 30; i++) {
                        textViewOne = new TextView(getApplicationContext());
                        textViewOne.setBackgroundColor(0xaa000000);
                        textViewOne.setText("This is Dynamic textViewOne");
                        Inner1HorizontalLinearLayout.addView(textViewOne);
                        textViewTwo = new TextView(getApplicationContext());
                        textViewTwo.setBackgroundColor(0xaa000000);
                        textViewTwo.setText("This is Dynamic textViewTwo");
                        Inner2HorizontalLinearLayout.addView(textViewTwo);                  
                    }
                    horizontalScrollViewOfMain.addView(Inner1HorizontalLinearLayout);
                    horizontalScrollViewOfMain.addView(Inner2HorizontalLinearLayout);
                }

            });

            LinearLayoutInScrollView.addView(verticalScrollTriggerButton);
            LinearLayoutInScrollView.addView(horizontalScrollTriggerButton);

        }

これは main.xml のコードです。

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

    <ScrollView
        android:id="@+id/MainscrollView"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" >

        <LinearLayout
            android:id="@+id/MainscrollViewLayout"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:orientation="vertical" >


        </LinearLayout>

    </ScrollView>

</LinearLayout>
4

1 に答える 1

0

最初に目にする問題は、次の 2 行です。

horizontalScrollViewOfMain.addView(Inner1HorizontalLinearLayout);
horizontalScrollViewOfMain.addView(Inner2HorizontalLinearLayout);

すべての scrollView はフレーム ビューであり、1 つの内部ビューのみを持つことができます。

http://developer.android.com/reference/android/widget/Horizo​​ntalScrollView.html

私は現在、コードを実行したり詳細を調べたりするためにコンピューターにいるわけではありません. しかし、それで問題が解決したかどうかを確認してください。

于 2012-04-09T19:12:00.737 に答える