sandalone
sandalone

Reputation: 41749

Detect if some part of the view is NOT visible?

Is it possible to detect if some part of the view is not visible on the screen?

This is used in a situation that view's width/height is bigger that its parent's width/height.

EDIT

I get that the height of a view is 0. Does anyone knows why? I fetch the height in onCreate.

LinearLayout lin = (LinearLayout) findViewById(R.id.linear_layout);
final int layoutHeight = lin.getHeight();
Toast.makeText(this,"LinLay height: "+layoutHeight,Toast.LENGTH_SHORT).show();
...
        button = (Button) findViewById(R.id.button);
        button.setOnClickListener(new View.OnClickListener() {
            public void onClick(View view) {
                int displayTextWidth = textView.getWidth();

                if (displayTextWidth <= layoutHeight) {
                    textView.setTextSize(textView.getTextSize() + 1);
                }
            }
        });

Upvotes: 0

Views: 636

Answers (1)

Jason Robinson
Jason Robinson

Reputation: 31283

You could get the view's width and height by calling View.getWidth() and View.getHeight(), then get the device dimensions by these means: How do I get a device's maximal width and height in android

Then compare the two, and if the view's bounds are larger than your device's bounds, then some parts of the view are not visible.

In response to comments:

    textView.post( new Runnable() {

    @Override
    public void run() {

        int displayTextWidth = textView.getWidth();

        // Code that uses width here...
    }
});

Upvotes: 2

Related Questions