0

3 つの Horizo​​ntalScrollView を 1 つのフラグメントに追加したいと考えています。1 つを正常に実装しましたが、別のフラグメントを同じフラグメントに実装しようとすると、 1 つの子のみhorizontalscrollviewをサポートするというエラーが発生しました 。HorizontalScrollViewそこで、horizontalscrollviewXML で別のものを作成しました。2 番目の linearlayout を作成し、新しい imageviewer ID をその 2 番目の linearlayout に渡しましたが、画面に表示されません。

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" >
<HorizontalScrollView 
    android:orientation="horizontal"
    android:layout_width="800px"
    android:id="@+id/horizontalScroll"
    android:background="#C6D7D2" android:layout_height="600px">
<LinearLayout
    android:id="@+id/container"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">        
</LinearLayout>
</HorizontalScrollView>
<HorizontalScrollView 
    android:orientation="horizontal"
    android:layout_width="800px"
    android:id="@+id/horizontalScroll2"
    android:background="#C6D7D2"
    android:layout_height="600px">
<LinearLayout 
    android:id="@+id/container2" 
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">        
</LinearLayout>
</HorizontalScrollView>
</LinearLayout>

ここにJavaフラグメントコードがあります

public class FevFragment extends SherlockFragment{
 @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        return inflater.inflate(R.layout.cfragment, container, false);
    }
@Override
public void onStart() {
    super.onStart();
    /** Setting the multiselect choice mode for the listview */
    initfrag();
}
private void initfrag() {
    LinearLayout linearlayout1 = (LinearLayout)getView().findViewById(R.id.container);
    LinearLayout linearlayout2 = (LinearLayout)getView().findViewById(R.id.container2);
    for (int i = 0; i < 15; i++) { 
        ImageView iv = new ImageView(getActivity());
        iv.setPadding(5, 55, 5, 5);
         iv.setImageResource(R.drawable.test_play_image);
         linearlayout1.addView(iv, 260, 260); 
         ImageView iv2 = new ImageView(getActivity());
         iv2.setPadding(5, 255, 5, 5);
         iv2.setImageResource(R.drawable.test_play_image);
         linearlayout2.addView(iv2, 100, 100); 
        TextView tv = new TextView(getActivity());
        tv.setText("testing");
        tv.setPadding(5, 55, 5, 5);
        linearlayout1.addView(tv, 100, 100);
        }
}  }
4

1 に答える 1

0

ドキュメントを読む

Horizo​​ntalScrollView は FrameLayout です。つまり、スクロールするコンテンツ全体を含む子を 1 つ配置する必要があります。この子自体が、オブジェクトの複雑な階層を持つレイアウト マネージャーである場合があります。よく使用される子は、水平方向の LinearLayout であり、ユーザーがスクロールできる最上位アイテムの水平配列を提示します。

最初の LinearLayout (id を宣言しなかった) で、この属性を使用します。

android:orientation="vertical"
于 2012-11-06T12:40:13.437 に答える