0

在我的应用程序中,我将成对的微调器插入到滚动视图内的线性布局中。问题是,当我添加足够多的微调器时,前两个会被部分遮挡。这就是我要说的。

:(

<LinearLayout
android:id="@+id/ChordHeader"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:background="@android:drawable/bottom_bar"
android:orientation="horizontal" >

<Button
    android:id="@+id/addChordButton"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:layout_weight="1"
    android:text="Add Chord" />

<TextView
    android:id="@+id/spacetext1"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:text="  "
    android:textAppearance="?android:attr/textAppearanceLarge" />

<Button
    android:id="@+id/removeChordButton"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:layout_weight="1"
    android:text="Remove Chord" />
 </LinearLayout>

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

<LinearLayout
    android:id="@+id/ChordList"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:isScrollContainer="true"
    android:orientation="vertical"
    android:weightSum="100" >

(微调器在这里插入)

</LinearLayout>
 </ScrollView>
 </LinearLayout>

如果有问题,这里是将微调器插入列表的代码。

    Spinner chordName = new Spinner(this);
    Spinner chordType = new Spinner(this);

    LinearLayout container = new LinearLayout(this);
    container.setOrientation(LinearLayout.HORIZONTAL);
    LinearLayout chordList = (LinearLayout) findViewById(R.id.ChordList);

    chordName.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, 80, 50));
    chordName.setAdapter(nameAdapter);
    container.addView(chordName); //add name spinner to container

    chordType.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, 80, 50));
    chordType.setAdapter(typeAdapter);
    container.addView(chordType); //add type spinner to container
    container.setBackgroundResource(android.R.drawable.bottom_bar);
    container.setPadding(10, 0, 10, 0);


    chordList.addView(container); //add container to list layout
4

2 回答 2

1

这是我的布局..试试看:)

<?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">

    <RelativeLayout
        android:id="@+id/ChordHeader"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@android:drawable/bottom_bar">

        <Button
            android:id="@+id/addChordButton"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerVertical="true"
            android:text="Add Chord" />


        <Button
            android:id="@+id/removeChordButton"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentRight="true"
            android:layout_centerVertical="true"
            android:ellipsize="middle"
            android:text="Remove Chord" />

    </RelativeLayout>

    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_below="@id/ChordHeader"
        >

        <LinearLayout
            android:id="@+id/ChordList"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical" >

        </LinearLayout>
    </ScrollView>

</RelativeLayout>

现在对于按钮,如果您真的希望它们具有相同的大小,您可能需要设置一个尺寸。以下是如何在 Android 中存储维度:更多资源类型:维度

于 2012-07-01T02:38:10.030 回答
0

添加完微调器后,尝试获取对列表中顶部项目的引用,然后请求关注它。

chordList.getChildAt(0).requestFocus();
于 2012-07-01T02:06:23.373 回答