如何在需要时仅使用Horizo​​ntalScrollView

时间:2015-04-13 06:52:59

标签: android scrollview android-linearlayout

如果文本和图像对于屏幕尺寸来说太长,我会在带有Horizo​​ntalScrollView的ListView中显示文本和图像,但我认为只有在需要时它才会存在。

但是即使不需要Horizo​​ntalScrollView使得文本和图像适合屏幕,它仍然会出现在每一行中,并且它全部都在标签中,因此这会使得从一个标签到另一个标签的滑动会导致手指捕获Horizo​​ntalScrollView而不是整个标签。

所有文字视图等都在一个布局文件中,所以我不能只选择某些行。

enter image description here

 <HorizontalScrollView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
xmlns:android="http://schemas.android.com/apk/res/android">

 <LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center_vertical"
android:orientation="horizontal" >

<TextView
    android:id="@+id/textView1"
    android:layout_marginStart="5dp"
    android:layout_marginLeft="5dp"
    android:layout_marginRight="5dp"
    android:layout_marginTop="10dp"
    android:layout_marginBottom="10dp"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textSize="14sp"
    android:textStyle="bold" />

<ImageView
    android:id="@+id/imageView1"
    android:layout_marginStart="5dp"
    android:layout_marginLeft="5dp"
    android:layout_marginRight="5dp"
    android:layout_marginTop="10dp"
    android:layout_marginBottom="10dp"
    android:layout_width="30dp"
    android:layout_height="30dp"/>

<TextView
    android:id="@+id/textView2"
    android:layout_marginStart="5dp"
    android:layout_marginLeft="5dp"
    android:layout_marginRight="5dp"
    android:layout_marginTop="10dp"
    android:layout_marginBottom="10dp"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textSize="14sp"
    android:textStyle="bold" />

<ImageView
    android:id="@+id/imageView2"
    android:layout_marginStart="5dp"
    android:layout_marginLeft="5dp"
    android:layout_marginRight="5dp"
    android:layout_marginTop="10dp"
    android:layout_marginBottom="10dp"
    android:layout_width="30dp"
    android:layout_height="30dp"/>

<TextView
    android:id="@+id/textView3"
    android:layout_marginStart="5dp"
    android:layout_marginLeft="5dp"
    android:layout_marginRight="5dp"
    android:layout_marginTop="10dp"
    android:layout_marginBottom="10dp"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textSize="14sp"
    android:textStyle="bold" />

 <ImageView
    android:id="@+id/imageView3"
    android:layout_marginStart="5dp"
    android:layout_marginLeft="5dp"
    android:layout_marginRight="5dp"
    android:layout_marginTop="10dp"
    android:layout_marginBottom="10dp"
    android:layout_width="30dp"
    android:layout_height="30dp"/>

  <TextView
    android:id="@+id/textView4"
    android:layout_marginStart="5dp"
    android:layout_marginLeft="5dp"
    android:layout_marginRight="5dp"
    android:layout_marginTop="10dp"
    android:layout_marginBottom="10dp"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textSize="14sp"
    android:textStyle="bold" />

  <ImageView
    android:id="@+id/imageView4"
    android:layout_marginStart="5dp"
    android:layout_marginLeft="5dp"
    android:layout_marginRight="5dp"
    android:layout_marginTop="10dp"
    android:layout_marginBottom="10dp"
    android:layout_width="30dp"
    android:layout_height="30dp"/>

  <TextView
    android:id="@+id/textView5"
    android:layout_marginStart="5dp"
    android:layout_marginLeft="5dp"
    android:layout_marginRight="5dp"
    android:layout_marginTop="10dp"
    android:layout_marginBottom="10dp"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textSize="14sp"
    android:textStyle="bold" />

  <ImageView
    android:id="@+id/imageView5"
    android:layout_marginStart="5dp"
    android:layout_marginLeft="5dp"
    android:layout_marginRight="5dp"
    android:layout_marginTop="10dp"
    android:layout_marginBottom="10dp"
    android:layout_width="30dp"
    android:layout_height="30dp"/>

  <TextView
    android:id="@+id/textView6"
    android:layout_marginStart="5dp"
    android:layout_marginLeft="5dp"
    android:layout_marginRight="5dp"
    android:layout_marginTop="10dp"
    android:layout_marginBottom="10dp"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textSize="14sp"
    android:textStyle="bold" />

  <ImageView
    android:id="@+id/imageView6"
    android:layout_marginStart="5dp"
    android:layout_marginLeft="5dp"
    android:layout_marginRight="5dp"
    android:layout_marginTop="10dp"
    android:layout_marginBottom="10dp"
    android:layout_width="30dp"
    android:layout_height="30dp"/>

  <TextView
    android:id="@+id/textView7"
    android:layout_marginStart="5dp"
    android:layout_marginLeft="5dp"
    android:layout_marginRight="5dp"
    android:layout_marginTop="10dp"
    android:layout_marginBottom="10dp"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textSize="14sp"
    android:textStyle="bold" />

  <ImageView
    android:id="@+id/imageView7"
    android:layout_marginStart="5dp"
    android:layout_marginLeft="5dp"
    android:layout_marginRight="5dp"
    android:layout_marginTop="10dp"
    android:layout_marginBottom="10dp"
    android:layout_width="30dp"
    android:layout_height="30dp"/>




  </LinearLayout>

  </HorizontalScrollView>


 View v=infla.inflate(R.layout.main_tab_layout, null);


        TextView tv1=(TextView)v.findViewById(R.id.textView1);
            ImageView iv1=(ImageView)v.findViewById(R.id.imageView1);
            TextView tv2=(TextView)v.findViewById(R.id.textView2);
            ImageView iv2=(ImageView)v.findViewById(R.id.imageView2);



        tv1.setText(text1[position]);
            iv1.setImageResource(text2[position]);
            tv2.setText(text3[position]);
            iv2.setImageResource(text4[position]);


            if(text3[position].matches("")) {
                tv2.setVisibility(View.GONE);
            }



            if(text4[position]==R.drawable.ic_star){
                iv2.setVisibility(View.GONE);
            }



            return v;
        }

1 个答案:

答案 0 :(得分:0)

您没有隐藏ImageViews。它们没有任何可绘制的原因,因为它看起来没有任何东西,但由于宽度和高度都是硬编码的,因此需要空间。

将可见性设置为未使用的ImageView。