我正面临一个问题,也许我可能遇到设备问题。
单线性布局
我在做什么:使用三个视图创建登录表单,即编辑文本,按钮(最初可见性消失),CheckBox。
我面对的是什么:只要我勾选复选框,按钮就会显示,并且复选框会在下面移动,因为我已经提供了保证金Top我的观点是这样的:
编辑文字 按钮(能见度消失) 复选框(边缘为顶部)
一旦我检查复选框,我就会看到按钮,但我面临两个问题。
问题1: 选中复选框后,文本向上移动,但按钮色调不移动它确实保持固定
问题2: 因为当我检查整个复选框时,我已经给出了保证金顶部和按钮当前不可见的视图现在从按钮获取保证金,这是从编辑文本中获取的,并且仍然会再次观察问题1 < / p>
我的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:padding="0dip"
tools:context=".LoginActivity">
<com.medmainfomatix.VoIPvoiceapp.MyViewPager
android:id="@+id/viewPagerVertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="150dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/layout_sms"
android:gravity="center_horizontal"
android:orientation="vertical">
<android.support.design.widget.TextInputLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="50dp"
android:layout_gravity="center"
>
<EditText
android:id="@+id/loginNo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:singleLine="true"
android:minWidth="200dp"
android:layout_gravity="center_horizontal"
android:textSize="25sp"
android:maxLength="10"
android:textColor="@color/white"
android:hint="@string/msg_enter_mobile"
android:digits="1234567890"
android:textCursorDrawable="@null"
android:inputType="phone">
<requestFocus />
</EditText>
</android.support.design.widget.TextInputLayout>
<Button
android:id="@+id/btn_request_sms"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="NEXT"
android:minHeight="50dp"
android:minWidth="170dp"
android:background="@color/btnclr"
android:textColor="@color/pink"
android:textSize="20sp"
android:textStyle="bold"
android:visibility="gone" />
<CheckBox
android:id="@+id/checkBox1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:layout_marginTop="200dp"
android:layout_gravity="center_horizontal"
android:textColor="@color/white"
android:buttonTint="@color/white"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/layout_otp"
android:gravity="center_horizontal"
android:orientation="vertical">
<TextView
android:id="@+id/otptext1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:layout_marginBottom="15dp"
android:paddingLeft="40dp"
android:paddingRight="40dp"
android:layout_gravity="center"
android:text="@string/msg_manual_otp"
android:textColor="@android:color/white"
android:textSize="12dp"
/>
<android.support.design.widget.TextInputLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="50dp"
android:layout_gravity="center"
>
<EditText
android:id="@+id/inputOtp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:singleLine="true"
android:minWidth="120dp"
android:layout_gravity="center"
android:textSize="25sp"
android:maxLength="6"
android:textColor="@color/white"
android:hint="@string/lbl_enter_otp"
android:digits="1234567890"
android:textCursorDrawable="@null"
android:inputType="number">
<requestFocus />
</EditText>
</android.support.design.widget.TextInputLayout>
<Button
android:id="@+id/loginButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="15dp"
android:text="VERIFY"
android:background="@color/btnclr"
android:minHeight="50dp"
android:minWidth="170dp"
android:textColor="@color/pink"
android:textSize="20sp"
android:textStyle="bold"
/>
</LinearLayout>
</com.medmainfomatix.VoIPvoiceapp.MyViewPager>
</RelativeLayout>
仅查看布局短信,因为我使用了查看寻呼机,不要查看Otp部分。 我想增加复选框的文字大小。
这是两个截图抱歉延迟。 Before
答案 0 :(得分:1)
当按钮为private OkHttpClient buildHttpClient(Interceptor interceptor) {
ArrayList<Protocol> protocols = new ArrayList<>();
protocols.add(Protocol.HTTP_1_1);
OkHttpClient.Builder builder = new OkHttpClient.Builder();
return builder.connectTimeout(mConnectTimeoutMs, TimeUnit.MILLISECONDS)
.readTimeout(mSocketTimeoutMs, TimeUnit.MILLISECONDS)
.protocols(protocols)
.addInterceptor(new HttpLoggingInterceptor().setLevel(HttpLoggingInterceptor.Level.BODY))
.addInterceptor(buildCurlInterceptor())
.build();
}
时,表示它不占用屏幕空间,
当你让他visibility.GONE
时,它现在需要一个位置,如果没有正确设置,其他视图会对它作出反应,
最好的解决方案是使用visibility.VISIBLE
,这将使其不可见但在屏幕中占据一席之地,
这样,当它变得可见时,什么都不会被移动,
然后你可以轻松重新排列屏幕
您可以查看此内容以获取更多信息 Android : difference between invisible and gone?
答案 1 :(得分:0)
选中复选框后立即尝试invalidate()
布局。