I've created my own custom button in LibGDX which extends the InputAdapter class. I am overriding the touchDown and the touchUp methods. An event is triggered on the touchUp event being fired i.e. change screen etc. When just using the touchUp event everything works as expected. When using the touchdown event also (currently doesn't do anything just fires) it is required that the button is pressed for at least 1 second before the touchUp event will fire when I lift my finger, otherwise the touchUp event fails to fire. Any ideas as to why this happens or how to fix it?
Touch_up is fired if the Touch_Down event returned true, are you processing something inside the touch_down? If it takes more time to process than you left the button the touch_down would not have returned true and wont fire it up, i recomend put your game logic outside input processors, as you can see in the InputListener JavaDoc:
void touchUp(InputEvent event, float x, float y, int pointer, int button)
Called when a mouse button or a finger touch goes up anywhere, but only if touchDown previously returned true for the mouse button or touch.