ScrollView(스크롤 막대)


이 섹션 소개:

이 섹션에서는 Android 기본 UI 컨트롤의 10번째인 ScrollView(스크롤 막대)를 제공합니다. 그렇지 않으면 전화해야 합니다. 다른 가로 스크롤 막대에 해당하는 세로 스크롤 막대: HorizontalScrollView, 먼저 공식 문서를 보내겠습니다. 링크: ScrollView, 클래스의 구조는 다음과 같습니다.

1.png

이것은 FrameLayout 컨테이너로 밝혀졌지만 그 위에 스크롤이 추가되어 더 많은 콘텐츠를 표시할 수 있습니다. 실제보다!

또한 내부에는 하나의 하위 요소만 배치할 수 있습니다. 이는 단일 구성 요소일 수도 있고 레이아웃에 포함된 복잡한 계층 구조일 수도 있습니다!

일반적으로 디스플레이가 완전하지 않은 상황에서는 레이아웃의 외부 레이어에 직접 배치할 수 있습니다. ScrollView 또는 수평ScrollView! 참 간단해요~!


만날 수 있는 몇 가지 요구 사항

좋아, 문서를 하나씩 공제하지 말고 실제 개발에서 만날 수 있는 몇 가지 요구 사항에 대해 이야기해 보겠습니다.

또 다른 일반적인 문제는 ScrollView 및 ListView 중첩 문제입니다. ListView 장 설명해 보겠습니다~


1. 아래쪽으로 스크롤:

ScrollView에서 제공하는 fullScroll() 메서드 를 직접 사용할 수 있습니다:

scrollView.fullScroll(ScrollView.FOCUS_DOWN); scrollView.fullScroll(ScrollView.

FOCUS_UP

); 위로 스크롤그리고 이 것 사용시 비동기적인 부분에 주의하세요. 즉, View를 추가한 후에는 완전히 표시되지 않을 수도 있습니다. 이때 이 메소드를 직접 호출하면 유효하지 않을 수 있으므로 핸들러를 직접 작성하여 업데이트해야 합니다~

코드예시:

Rendering:

2.gif

Implementation code:

레이아웃이 비교적 간단해서 더 이상 게시하지 않고 MainActivity

MainActivity.java

만 게시합니다.

public 클래스 MainActivity는 AppCompatActivity를 확장하여 View.OnClickListener를 구현합니다.

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate (savedInstanceState);
        setContentView(R.layout.activity_main);
        bindViews();
    }


    private void bindViews() {
        btn_down = (버튼) findViewB yId(R.id.btn_down);
        btn_up = (버튼 ) findViewById(R.id.btn_up);
        scrollView = (ScrollView) findViewById(R.id.scrollView);
        txt_show = (TextView) findViewById(R.id.txt_show);
        btn_down.set OnClickListener(this);
        btn_up .setOnClickListener(this);

        StringBuilder sb = new StringBuilder();
        for (int i = 1; i <= 100; i++) {
            sb.append("呵呵 * " + i + 'n'); ㅋㅋㅋ         케이스 R.id.btn_down:
                scrollView .fullScroll(ScrollView.FOCUS_DOWN);
               break;
            case R.id.btn_up:
               scrollView.fullScroll(ScrollView.FOCUS_UP);
break, = 새로운 핸들러 ();
mhandler.post (new runnable () {
public void run () {
if (scroll == null || Inner == null) {
Return;
int Office Er.getMeasureDheight ( ) - scroll.getHeight();

if (offset < 0) {

offset = 0;
scroll.scrollTo(0, offset);
             }
     });
}



scrollTo
( ) 매개변수는 다음과 같습니다. x, y를 차례로 누르고 해당 x, y 위치로 굴립니다!


2. 스크롤 슬라이더 이미지를 설정하세요


더 쉽습니다:
Vertical
방향 슬라이더: android:
scrollbarThumbVertical

Horizontal

방향 슬라이더: android:
scrollbarThumbHorizontal

3.슬라이더 숨기기 좋아요, 이건 쓸모없어 보입니다.
두 가지 방법이 있습니다: 1.android:scrollbars="none"2.Java 코드 설정: scrollview.setVerticalScrollBarEnabled(false);

4.스크롤 속도 설정:

이것은 직접 설정할 수 있는 메서드를 제공하지 않습니다. , 직접 ScrollView를 상속받은 다음 다시 작성해야 합니다. public void fling 방법(int speedY):

@Override
public void fling(int velocityY) {
    super.fling(velocityY / 2);    //速度变为原来的一半
}

이 섹션 요약:

좋아요. 제가 생각할 수 있는 ScrollView 항목은 너무 많습니다. 왜냐하면 이 항목은 많이 사용되지 않고 일반적으로 그냥 배치되기 때문입니다. 밖의. 그 외에 가장 흔히 발생하는 문제는 대개 ScrollView와 ListView의 중첩입니다. 추가할 사항이 있으면 언제든지 문의해 주세요. 감사합니다~