Android динамически добавляет горизонтальную полосу прокрутки и вертикальную полосу прокрутки в представление

#android #android-scrollbar

#Android #android-полоса прокрутки

Вопрос:

ПРИВЕТ,
у меня проблема с динамическим добавлением горизонтальной и вертикальной полос прокрутки в представление. В основном приложение увеличивает и уменьшает изображение. Я хочу динамически размещать горизонтальную и вертикальную полосы прокрутки всякий раз, когда вид выходит за пределы. т. Е. Когда щелчок по увеличению и просмотр выходит за рамки, он автоматически добавляет полосу прокрутки. Я использую эти два метода, но они не сработали корректно.
setVerticalScrollBarEnabled(true);
setHorizontalScrollBarEnabled (true);
Должен ли я помещать эти методы в метод onDraw (Canvas холст) представления?
Примечание: Я не создаю представление с использованием XML-файла. Я создаю view, используя класс, который унаследован от View.
Спасибо!!

Ответ №1:

не совсем одно и то же, но это может дать вам подсказку:

     mTextView = new TextView(this);
    mTextView.setGravity(Gravity.CENTER_VERTICAL);       
    mTextView.setText(R.string.instructions);
    mTextView.setTextColor(0xFF000000);
    mTextView.setPadding(20, 8, 8, 20);
    //mTextView.setBackgroundColor(0xCCFFFFFF);
    mTextView.setTextSize(TypedValue.COMPLEX_UNIT_PT, 8);

    mScroll = new ScrollView(this);
    mScroll.setScrollbarFadingEnabled(false);
    mTextPane = new RelativeLayout(this);
    mTextPane.setVisibility(View.GONE);
    //mScroll.setVisibility(View.GONE);

    mScroll.addView(mTextView);
    mTextPane.addView(mScroll);

    Resources res = getResources();
    Drawable drawable = res.getDrawable(R.drawable.text_pane_feather2);
    mTextPane.setBackgroundDrawable(drawable);

    RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams( 420, 420 );
    //mBackground.setImageBitmap(R.drawable.text_pane);
    lp.setMargins(0,0,0,30);
    lp.addRule(RelativeLayout.CENTER_HORIZONTAL );
    lp.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);

    layout.addView(mTextPane, lp);