草庐IT

Android EditText水平滚动条不动

coder 2023-12-12 原文

我的编辑文本:

android:scrollbars="horizontal|vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:inputType="textMultiLine|textNoSuggestions"
android:ems="10"
android:gravity="top|left"

我的代码:

myet = (EditText) findViewById(R.id.myedittext);
myet.setScrollbarFadingEnabled(true);
myet.setHorizontallyScrolling(true); 

由于某些奇怪的原因,它确实滚动了,但滚动条本身并没有移动,它固定在编辑文本的左下角。

我想这与编辑文本没有静态宽度有关。

如何修复水平滚动条,使其可以移动并使其大小与最长的行成比例。

注意:它必须是多行的并且还可以垂直滚动。

最佳答案

好吧..我知道这可能不是一个完美的解决方案,但这是我从其他帖子中找到的。

这确实有效,但滚动条上的进度不是很明显。虽然有滚动效果,但绝对可以看到进度。

这是 java 的代码:

    et = (EditText) getActivity().findViewById(R.id.et1);
    et.setScroller(new Scroller(getActivity())); //This may not be needed.
    et.setHorizontalScrollBarEnabled(true); 
    et.setScrollbarFadingEnabled(true);
    et.setHorizontallyScrolling(true);
    et.setMovementMethod(new ScrollingMovementMethod()); 

这是它的布局:

<EditText
        android:id="@+id/et1"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:ems="10"
        android:scrollHorizontally="true"
        android:scrollbarAlwaysDrawHorizontalTrack="true"
        android:scrollbarFadeDuration="2000"
        android:scrollbarSize="80dp"
        android:scrollbarStyle="insideInset"
        android:scrollbarTrackHorizontal="@drawable/ic_drawer"
        android:scrollbars="horizontal"
        android:text="Hello"
        android:textSize="80sp" >
    </EditText>

同样,这里提到的所有东西都不是必需的,我这样做是为了测试目的。你可以改变它。

为了证明代码有效,这里有两张图片。

Images http://imageshack.com/a/img850/3913/5c1i.png Images http://imageshack.com/a/img834/151/zg73.png

试试这个,看看你是否得到任何更新。

请说您看到了进展。同样,这可能不是一个完美的解决方案。任何建议都会有所帮助或任何其他答案将不胜感激。

已编辑:工作解决方案

我的布局: (activity_main.xml)

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#999999"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >

    <HorizontalScrollView
        android:id="@+id/SCROLLER_ID"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:background="#333333"
        android:fillViewport="true"
        android:scrollbars="horizontal" >

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="horizontal" >

            <TextView
                android:id="@+id/TEXT_STATUS_ID"
                android:layout_width="0dip"
                android:layout_height="fill_parent"
                android:layout_gravity="center"
                android:layout_weight="1.0"
                android:text="Hello"
                android:textColor="#cccccc"
                android:textSize="35sp" />
        </LinearLayout>
    </HorizontalScrollView>

</RelativeLayout>

Java 代码: (MainActivity.java)

public class MainActivity extends Activity {

    TextView tv1;
    HorizontalScrollView mScrollView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        tv1 = (TextView) findViewById(R.id.TEXT_STATUS_ID);
        mScrollView = (HorizontalScrollView) findViewById(R.id.SCROLLER_ID);
        // loadDoc();
        String s = "Nam ornare mattis nulla vitae vestibulum. "
                + "Mauris ac tellus diam. Nam dictum dolor augue,"
                + "quis hendrerit tortor aliquam et. Proin eu gravida augue."
                + "\n"
                + "Fusce lorem dolor, faucibus quis auctor eu, interdum at lorem."
                + "Suspendisse mi elit, suscipit semper mauris et, "
                + "interdum adipiscing lectus. Nulla laoreet arcu "
                + "\n"
                + "sollicitudin ultricies laoreet. Curabitur a bibendum nibh. "
                + "Etiam eget quam vitae sapien pellentesque facilisis. "
                + "Fusce nec enim vel mauris ultrices blandit ut sed purus."
                + " Vivamus ut sem nisi. Cras molestie ligula ac dui fermentum,"
                + " id placerat mauris rhoncus. Curabitur erat urna, ornare a placerat ac, "
                + "interdum nec diam. Donec sodales imperdiet nulla, ut ultricies elit.";
        tv1.setText(s);
        scrollToBottom();
    }

    private void scrollToBottom() {
        mScrollView.post(new Runnable() {
            public void run() {
                tv1.setHorizontallyScrolling(true);
                tv1.setMovementMethod(new ScrollingMovementMethod());
                mScrollView.smoothScrollTo(0, tv1.getBottom());
            }
        });
    }

}

现在它运行顺畅,单杠运行良好且 react 灵敏。试试看。效果很好..祝你好运..:)

关于Android EditText水平滚动条不动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24071059/

有关Android EditText水平滚动条不动的更多相关文章

  1. ruby-on-rails - Ruby on Rails 中的水平数据库扩展 - 2

    我有一个RubyonRails应用程序和一个具有以下结构的PostgreSQL数据库:classA只有几个A,而且增长缓慢(比如一个月5个)。每个A有数千个B,每个B有数万个C(因此每个A有数百万个C)。A是独立的,并且永远不会同时需要来自不同A的B和C(即在同一查询中)。我的问题是现在我只有几个A,ActiveRecord查询需要很长时间。当C的表有数千万行时,查询将永远无法进行。我正在考虑水平扩展数据库(即A的一张表,B的一张表和每个A的一张C的表)。但我不知道该怎么做。我猜这是一种分片,但我无法弄清楚如何动态创建数据库表并使用ActiveRecord访问数据(如果该表取决于我正在

  2. ruby-on-rails - Ruby on Rails 平均水平? - 2

    有没有一种简单的方法可以获取集合中某个属性的平均值?例如,每个用户都有一个分数。给定一组用户(@users),您如何获得该组的平均分?有没有类似@users.average(:score)的东西?我想我在数据库字段中遇到过类似的东西,但我需要它来处理集合...... 最佳答案 对于你的问题,实际上可以这样做:@users.collect(&:score).sum.to_f/@users.lengthif@users.length>0早些时候我认为,@users.collect(&:score).average会起作用。对于数据库字段

  3. ruby - 绕过 Element 的方法无法滚动到 View 中 - Watir-webdriver with Ruby - 2

    因此,我们的页面中有以下代码:OnOff这是2个单选按钮。'开和关'。“关闭”是默认值。使用Watir-webdriver和Ruby,我们想要选择“打开”单选按钮。我们这样做:browser.radio(:id=>"HasRegistration_true").set但在这样做时,我们得到以下错误:`WebElement.clickElement':Elementcannotbescrolledintoview:[objectHTMLInputElement](Selenium::WebDriver::Error::MoveTargetOutOfBoundsError)我们知道Sele

  4. ruby - 如何使用 watir 滚动网页 - 2

    我正在尝试滚动网页以查找并单击滚动页面时延迟加载的内容。我正在使用以下命令require'watir-webdriver'@browser=Watir::new:firefox@browser.send_keys:space我在firefox上使用网络驱动程序,我在ubuntu上,但它不工作。在下面的ruby​​代码中,我试图向下滚动页面,直到找不到带有:id的元素。该元素正在延迟加载。几秒钟后我超时了,不知道下面的代码有什么问题。When/^deal(\d+)isloaded$/do|id|(0..5).eachdo|click|@browser.send_keys:spaceend

  5. ruby - Selenium 滚动元素进入(中心) View - 2

    当一个元素在selenium的View之外并且试图与之交互时,selenium通常会首先隐式地将元素滚动到View中。这很棒,只是烦人的是它通常将元素放入View中。我的意思是,如果元素位于窗口下方,它会向下滚动足够多直到元素刚好与窗口边缘接壤。通常这很好,但是当在周围有边框的网站上工作时,这将导致许多此类错误Selenium::WebDriver::Error::UnknownError:unknownerror:Elementisnotclickableatpoint(438,747).Otherelementwouldreceivetheclick:...因为通常网页的边框都在它

  6. javascript - 在上方和下方添加新内容时锁定滚动 - 2

    我有一个用作新闻提要的meteor.js应用程序,可以发布话题,人们可以实时评论话题。这意味着当您查看帖子时,将在帖子上方和下方添加新评论,并且在上方添加新话题。这会将您正在关注的帖子向下推到视口(viewport)之外,这是意想不到的(除非您已经滚动到顶部)。更新滚动以在添加新内容时保持相同视觉中心的最佳方法是什么? 最佳答案 你可以试试这个方法:保存scrollTop值;在内容前添加内容(即,在关注的帖子上方添加新帖子);将新内容的高度添加到步骤1中保存的值;滚动到新值。这是一个例子:functionrandomString()

  7. javascript - 更改 scrollTop 不会继续惯性滚动 - 2

    我有一个包含可滚动内容的div,在某个scrollTop值返回到顶部。varcontainer=document.getElementById('container');functionscroll_function(){varnew_position_top=container.scrollTop;if(new_position_top>600){container.scrollTop=0;}}container.addEventListener('scroll',scroll_function);#container{width:300px;height:300px;overflo

  8. javascript - 水平滚动的 SVG - 2

    我正在尝试用D3(https://cdnjs.cloudflare.com/ajax/libs/d3/3.5.17/d3.min.js)做一个SVG图形,其中条形宽度是手动定义的,并且有一个水平滚动条..我这里有一个工作fiddlehttps://jsfiddle.net/bikrantsharma/zw264tfc/12/我的比例是这样定义的varbarWidth=30,paddingFactor=2.2,responsiveDIVHeight=300,responsiveDIVWidth=tempData.length*barWidth*paddingFactor;varx=d3.

  9. javascript - 如何检查滚动条是否可见? - 2

    我想在我的网站上显示一个“转到顶部”链接。只有在垂直滚动条可见时,该链接才应该可见。我如何使用JavaScript执行此操作?谢谢 最佳答案 你可以查看elem.clientHeight值,但它也取决于css属性 关于javascript-如何检查滚动条是否可见?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/2927963/

  10. javascript - 动画图像在长时间的 Javascript 方法调用期间不动 - 2

    在运行10秒向html添加一些元素的方法中,动画gif根本没有移动,给人一种网页卡住的感觉。任何解决办法。示例代码:$('#button).click(function(){showAnimatedGif();longRunningMethod();hideAnimatedGif();});解决此问题的一种方法是将长时间运行的方法分解为多个步骤并以这种方式设置动画,但是您必须以这种方式为每个长时间运行的方法编写代码。想知道是否还有其他方法可以做到这一点? 最佳答案 确保动画实际发生的唯一方法是让longRunningMethod定期

随机推荐