前言

    先建立一个 helloworld 工程(可参考我的另一篇文章【Android Studio 3.5.3】写helloworld程序及调试运行方法),接下来,在这个工程里加多一个 fragment。

修改APP名称

修改 res-->values-->strings.xml 里的内容即可,如下:

iOS 开发 修改UISlider app修改ui教程_ide

 

加一个按钮

如下,简单粗暴,直接拖到下面即可。

iOS 开发 修改UISlider app修改ui教程_Time_02

问题:按键的位置不对

由上图中,也可以看到有一个红底白字的感叹号,提示没有包含在容器里。这导致的结果就是,新加的按键会在左上角,也就是坐标为(0,0)的位置上。

那么,怎么解决呢?

1.切换会代码界面:

iOS 开发 修改UISlider app修改ui教程_ide_03

2.上下文的代码里都有位置信息的写法,如下图,虽热不一定是按键的,但写法是一样的。

iOS 开发 修改UISlider app修改ui教程_iOS 开发 修改UISlider_04

app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintHorizontal_bias="0.573"
            app:layout_constraintRight_toLeftOf="parent"
            app:layout_constraintRight_toRightOf="parent"
            app:layout_constraintTop_toTopOf="parent"

3.把找到的这段位置信息的代码复制到按键里就行。

iOS 开发 修改UISlider app修改ui教程_iOS 开发 修改UISlider_05

这时,再切回到图形界面下,就可以看到新加的按键有了位置信息啦,可以拖动到任何位置。

iOS 开发 修改UISlider app修改ui教程_xml_06

按键的位置不对,方法2

上面的是取巧的方法,正规的方法是先放一个容器,再在里面放按钮等控件。

iOS 开发 修改UISlider app修改ui教程_ide_07

然后,再在里面设定相对位置:

如下图,加多两个位置参数 layout_marginLeft和layout_marginTop。这两个参数,只要先输入 layout,就会有提示的。

iOS 开发 修改UISlider app修改ui教程_xml_08

 

 

代码里怎么和这个按键关连起来呢?

Button button_test = findViewById(R.id.button);
        button_test.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
                        .setAction("Action", null).show();
            }
        });

onClick() 函数里的就是具体做的事情了,可以自己随意添加。至此,一个按钮的功能就添加完整啦。

加TextView

如下图,拖到下面就行。

iOS 开发 修改UISlider app修改ui教程_xml_09

确定位置

这一步和加按键是一样的。

加入:

iOS 开发 修改UISlider app修改ui教程_Time_10

改背景颜色

iOS 开发 修改UISlider app修改ui教程_xml_11

代码关联起来

易错点:每一个按钮ID,必须有代码关联起来,否则一打开软件就会闪退。

TextView textview_test = findViewById(R.id.textView3);
        textview_test.append("超级测试");

这点代码的效果是:

iOS 开发 修改UISlider app修改ui教程_Time_12

 

拖动条 SeekBar

iOS 开发 修改UISlider app修改ui教程_iOS 开发 修改UISlider_13

相关的代码为:

m_SeekBar = findViewById(R.id.seekBar_timed_send);
        m_SeekBar.setProgress(m_Delay_Time_ms/10);
        m_SeekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
            @Override
            public void onStopTrackingTouch(SeekBar seekBar) {//拖动条停止拖动的时候调用
            }
            @Override
            public void onStartTrackingTouch(SeekBar seekBar) {//拖动条开始拖动的时候调用
            }
            @Override
            public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {//拖动条进度改变的时候调用
                m_Delay_Time_ms = seekBar.getProgress()*10;
                m_TextView_Display.setText(String.format("%dms", m_Delay_Time_ms));
            }
        });