1

水平スクロールビューで構成されるアプリケーションを開発しています.Horizo ​​ntalScrollViewの幅を取得したい.どうすればこれを達成できますか? 私にとってはゼロとして返されます

XMLではこのようになっています。

<TextView
    android:layout_width="50dp"
    android:layout_height="10dp"
    android:background="#00ff00" />

<HorizontalScrollView
    android:id="@+id/horizontalScrollView1"
    android:layout_width="fill_parent"
    android:layout_height="100dp"
    android:background="#ff0000" >

    <TextView
        android:layout_width="50dp"
        android:layout_height="10dp"
        android:background="#00ff00" />
</HorizontalScrollView>

Javaで

public class TestApplication extends Activity{

    private HorizontalScrollView horizontalScrollView1;

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

        horizontalScrollView1 = (HorizontalScrollView)findViewById(R.id.horizontalScrollView1);
        horizontalScrollView1.getRight();
        horizontalScrollView1.getWidth();

        System.out.println("horizontalScrollView1.getWidth();::>"+horizontalScrollView1.getWidth());
        System.out.println("horizontalScrollView1.getWidth();::1>"+horizontalScrollView1.getMeasuredWidth());
    }

私は次の方法を試しましたが、誰でも助けてくれます。

ありがとうニキル

4

4 に答える 4

2

あなたはこのようにすることができます:

int width = 0;
ViewTreeObserver vto = horizontalScrollView1.getViewTreeObserver();
vto.addOnGlobalLayoutListener(new OnGlobalLayoutListener() {

    @Override
    public void onGlobalLayout() {
        width = horizontalScrollView1.getWidth();
    }
});

お役に立てれば幸いです:)

于 2012-08-04T12:40:29.103 に答える
0

getWidth()メソッドの代わりにgetMeasuredWidth()それを試してみるのが役立つと思います

于 2012-08-04T12:53:01.733 に答える