मैं एक सप्ताह से अधिक समय तक इससे जूझता रहा और आखिरकार यह पता लगा लिया कि यह काम कैसे करना है!
मेरा मुद्दा यह था कि सब कुछ एक 'ब्लॉक' के रूप में स्क्रॉल होगा। पाठ स्वयं स्क्रॉल कर रहा था, लेकिन लाइन के बजाय लाइन के रूप में। यह स्पष्ट रूप से मेरे लिए काम नहीं करता था, क्योंकि यह सबसे नीचे की रेखाओं को काट देगा। पिछले सभी समाधानों ने मेरे लिए काम नहीं किया, इसलिए मैंने खुद को तैयार किया।
यहाँ अब तक का सबसे आसान उपाय है:
एक क्लास फ़ाइल बनाएं: पैकेज के अंदर 'PerfectScrollableTextView', फिर इस कोड को कॉपी और पेस्ट करें:
import android.content.Context;
import android.graphics.Rect;
import android.util.AttributeSet;
import android.widget.TextView;
public class PerfectScrollableTextView extends TextView {
public PerfectScrollableTextView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
setVerticalScrollBarEnabled(true);
setHorizontallyScrolling(false);
}
public PerfectScrollableTextView(Context context, AttributeSet attrs) {
super(context, attrs);
setVerticalScrollBarEnabled(true);
setHorizontallyScrolling(false);
}
public PerfectScrollableTextView(Context context) {
super(context);
setVerticalScrollBarEnabled(true);
setHorizontallyScrolling(false);
}
@Override
protected void onFocusChanged(boolean focused, int direction, Rect previouslyFocusedRect) {
if(focused)
super.onFocusChanged(focused, direction, previouslyFocusedRect);
}
@Override
public void onWindowFocusChanged(boolean focused) {
if(focused)
super.onWindowFocusChanged(focused);
}
@Override
public boolean isFocused() {
return true;
}
}
अंत में XML में अपना 'TextView' बदलें:
से: <TextView
सेवा: <com.your_app_goes_here.PerfectScrollableTextView
maxLines
आपको एक मनमानी संख्या दर्ज करने की आवश्यकता है; यह ऐसा कुछ नहीं है जो हर स्क्रीन आकार और फ़ॉन्ट आकार के लिए काम करेगा? मुझे यह आसान लगता है कि मैं इसे केवल एक के साथ लपेटताScrollView
हूं, जिसका अर्थ है कि मुझे आगे एक्सएमएल विशेषताओं या कोड को जोड़ने की आवश्यकता नहीं है (जैसे आंदोलन विधि सेट करना)।