Vin*_*rya 4 android android-layout
我有以下布局
<merge>
<LinearLayout
android:id="@+id/ll_main"
android:layout_height="fill_parent"
android:layout_width="fill_parent"
/>
<LinearLayout
android:id="@+id/ll_sub"
android:layout_height="fill_parent"
android:layout_width="fill_parent"
/>
</merge>
Run Code Online (Sandbox Code Playgroud)
我想要做的是在运行时显示/隐藏ll_sub布局,setVisibility()但它不起作用.
当我从xml中设置android:visibility="gone"(也是我已经检查过invisible)ll_sub然后它没有显示在屏幕上,这次当我用来setVisibility()在运行时显示这个布局时,它显示但是当我试图隐藏这个布局一旦它是显示然后它没有隐藏.
编辑
我试图通过单击按钮显示/隐藏此线性布局.
LinearLayout ll;
Button minimize;
int visibility=0;
@Override
public void onCreate(Bundle savedInstanceState)
{
ll=(LinearLayout)findViewById(R.id.ll_sub);
minimize=(Button)findViewById(R.id.minimize);
minimize.setOnClickListener(new View.OnClickListener()
{
public void onClick(View view)
{
if(visibility==0)
{
visibility=2;
}
else
{
visibility=0;
}
ll.setVisibility(visibility);
}
});
}
Run Code Online (Sandbox Code Playgroud)
ska*_*bes 16
看起来您正在为更改视图可见性设置错误的常量.
GONE == 8
INVISIBLE == 4
VISIBLE == 0
Run Code Online (Sandbox Code Playgroud)
但是,您不应该依赖Android 碰巧指定的实际值来表示它们的常量.而是使用在视图类中定义的值:View.VISIBLE,View.INVISIBLE,和View.GONE.
// snip...
if(visibility == View.VISIBLE)
{
visibility = View.GONE;
}
else
{
visibility = View.VISIBLE;
}
ll.setVisibility(visibility);
Run Code Online (Sandbox Code Playgroud)
并且不要忘记调用invalidate()视图:)
| 归档时间: |
|
| 查看次数: |
14923 次 |
| 最近记录: |