我正在尝试创建一个应用程序,它只是一个包含文本、按钮等的简单列表......
但该列表太大,不适合移动屏幕。所以我尝试制作一个ScrollView,但它不起作用。
编辑:滚动在手机上不起作用。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
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="com.blabla.tddddd.MainActivity" >
<ScrollView
android:id="@+id/scroll"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_above="@+id/feedback_send"
android:fillViewport="true" >
<RelativeLayout
android:id="@+id/container"
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="Aksjasjjs"
android:id="@+id/textView"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:textStyle="bold|italic" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="KSADKDSK"
android:id="@+id/textView2"
android:layout_below="@+id/textView"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_marginTop="29dp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="salSKXAska"
android:id="@+id/textView3"
android:layout_below="@+id/textView2"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_marginTop="29dp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="SKakas"
android:id="@+id/textView4"
android:layout_marginTop="66dp"
android:layout_below="@+id/textView3"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="sassa"
android:id="@+id/textView5"
android:layout_marginTop="87dp"
android:layout_below="@+id/textView4"
android:layout_alignParentLeft="true" …Run Code Online (Sandbox Code Playgroud) android scrollview android-linearlayout android-relativelayout
我有一个垂直LinearLayout和四个水平LinearLayouts. 每个水平布局包含 4 Buttons. 我希望Buttons在每个水平方向LinearLayout均匀地填充屏幕宽度。目前它看起来像这样:
Button每行的第一行占据所有宽度,Buttons每行的其他 3行不可见。有谁知道我该如何解决这个问题?
<LinearLayout
android:id = "@+id/ll_screen_bttns"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:orientation="vertical"
>
<LinearLayout
android:id="@+id/ll1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_weight = "1">
<Button
android:id="@+id/button0"
android:layout_width="fill_parent"
android:layout_height="@dimen/size"
android:background="@drawable/button"
android:onClick="ButtonOnClick"
android:tag="0"/
/>
<Button
android:id="@+id/button1"
android:layout_width="fill_parent"
android:layout_height="@dimen/size"
android:background="@drawable/button"
android:onClick="ButtonOnClick"
android:tag="0"
/>
<Button
android:id="@+id/button2"
android:layout_width="fill_parent"
android:layout_height="@dimen/size"
android:background="@drawable/button"
android:onClick="ButtonOnClick"
android:tag="0"
/>
<Button
android:id="@+id/button3"
android:layout_width="fill_parent"
android:layout_height="@dimen/size"
android:background="@drawable/button"
android:onClick="ButtonOnClick"
android:tag="0"
/>
</LinearLayout>
<LinearLayout
android:id="@+id/ll2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_weight = "1">
<Button
android:id="@+id/button4"
android:layout_width="fill_parent" …Run Code Online (Sandbox Code Playgroud) 在我的应用程序中,我创建了重写 LinearLayout 的 LinearLayout 类,以便以编程方式设置其周围的边框和按需的其他图形(即填充自定义颜色)。问题是,在 onDraw 的第一行中,我必须获取布局 Rect,如下所示:
@Override
protected void onDraw(Canvas canvas) {
r = canvas.getClipBounds() ;
Run Code Online (Sandbox Code Playgroud)
问题是我收到警告:
避免在绘制操作期间分配对象:使用 Canvas.getClipBounds(Rect) 而不是 Canvas.getClipBounds() ,后者会分配临时 Rect。
虽然我知道上面的代码浪费了内存资源,但我找不到应用Canvas.getClipBounds(Rect)来执行相同操作的方法。如果有人指出我以更记忆友好的方式执行此操作的方法,我将不胜感激。
先感谢您。
我试图在 LinearLayout 中添加三个水平对齐的视图,但只显示一个视图;这里的第一个红色circle是下面的代码:
LinearLayout.LayoutParams linearParam = new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
view_custom_loading = new LinearLayout(getContext());
view_custom_loading.setVisibility(View.VISIBLE);
view_custom_loading.setLayoutParams(linearParam);
view_custom_loading.setBackgroundColor(getContext().getResources().getColor(R.color.semi_trans));
view_custom_loading.setPadding(10, 10, 10, 10);
view_custom_loading.setOrientation(LinearLayout.HORIZONTAL);
CircleView circle = new CircleView(getContext());
circle.color = Color.RED;
CircleView circle1 = new CircleView(getContext());
circle1.color = Color.WHITE;
CircleView circle2 = new CircleView(getContext());
circle2.color = Color.BLUE;
view_custom_loading.addView(circle);
view_custom_loading.addView(circle1);
view_custom_loading.addView(circle2);
viewList.add(circle);
viewList.add(circle1);
viewList.add(circle2);
Run Code Online (Sandbox Code Playgroud)
这是 CircleViewsonDraw方法:
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
Paint p = new Paint();
p.setColor(color);
p.setAntiAlias(true);
p.setStyle(Paint.Style.FILL);
canvas.drawCircle(50, 50, 25, p);
}
Run Code Online (Sandbox Code Playgroud) 这就是我要的:
[截屏]
这是我所做的:
<?xml version="1.0" encoding="utf-8"?>
<merge xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="30dip"
android:background="@color/color"
android:orientation="vertical" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="1dp"
android:background="@color/color"
android:orientation="horizontal">
<View
android:id="@+id/divider"
android:layout_width="5dp"
android:layout_height="match_parent"
android:layout_gravity="center_vertical"
android:background="@color/grey"
android:gravity="center_vertical" />
<LinearLayout
android:id="@+id/llayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/color"
android:orientation="vertical" >
<TextView
android:id="@+id/label"
style="@style/some_style"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="left"
android:layout_marginLeft="8dp"
android:gravity="left" />
<TextView
android:id="@+id/label2"
style="@style/some_style"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="left"
android:layout_marginLeft="8dp"
android:gravity="left" />
</LinearLayout>
</LinearLayout>
</merge>
Run Code Online (Sandbox Code Playgroud)
我已经完成了,但问题是如何在垂直线性布局的右上角对齐图像(可以在屏幕截图中看到)。
我也尝试过使用相对布局,图像出现在右上角,但它在文本视图中剪切了我的文本。
请建议:
我有一个应用程序,可以在 LinearLayout (位于 ScrollView 内部)内显示不同的图像。
当用户按下按钮时,我想对布局中的元素重新排序。例如:如果我有 |pic1|pic2|pic3| 显示在布局中,但我想重新排序它们,使它们显示为 |pic2|pic1|pic3|
这是我的“activity_main.xml”文件,其中包含所有图像:
<?xml version="1.0" encoding="utf-8"?>
<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="@drawable/map"
tools:context="dis2.widget.MainActivity">
<HorizontalScrollView
android:layout_width="fill_parent"
android:layout_height="80dp"
android:id="@+id/contactsScrollView"
android:fillViewport="false"
android:visibility="visible"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_marginTop="26dp">
<LinearLayout
android:orientation="horizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="visible">
<ImageView
android:layout_width="100dp"
android:layout_height="wrap_content"
android:src="@drawable/pic1"
android:id="@+id/pic1ID"
android:visibility="gone" />
<ImageView
android:layout_width="100dp"
android:layout_height="wrap_content"
android:src="@drawable/pic2"
android:id="@+id/pic2ID"
android:visibility="gone" />
<ImageView
android:layout_width="100dp"
android:layout_height="wrap_content"
android:src="@drawable/pic3"
android:id="@+id/pic3ID"
android:visibility="visible" />
</LinearLayout>
</HorizontalScrollView>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Reorder"
android:id="@+id/reorderB"
android:layout_marginBottom="114dp"
android:onClick="reorder"
android:layout_alignParentBottom="true" />
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud) 我试图从我的数据库中获取 3 组对象,我想以这样的方式显示它们:
但它只是把它们放在一个地方而不是分散开,见这里:

我猜卡片视图彼此重叠并且全部停留在一个地方而不是去可用区域。
我使用 LinearLayout 作为代码:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="match_parent"
android:layout_width="match_parent"
android:orientation="vertical"
android:weightSum="2"
>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
android:weightSum="2">
<android.support.v7.widget.CardView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginBottom="20dp"
android:layout_weight="1"
android:layout_gravity="left">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<ImageView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:src="@drawable/ic_addimage"
android:id="@+id/itemImage"
android:scaleType="fitCenter"
android:padding="2dp"
android:adjustViewBounds="true" />'
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Item name"
android:paddingLeft="15dp"
android:paddingRight="15dp"
android:paddingTop="5dp"
android:textSize="20dp"
android:textStyle="bold"
android:id="@+id/itemName"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Price"
android:textStyle="normal"
android:paddingTop="3dp"
android:paddingLeft="15dp"
android:paddingRight="15dp"
android:paddingBottom="10dp"
android:id="@+id/itemPrice"/>
</LinearLayout>
</android.support.v7.widget.CardView>
</LinearLayout>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud) xml android-layout android-linearlayout android-cardview android-recyclerview
这是我的mainlayout文件。
这是主布局文件,我在其中编写与导航抽屉相关的代码,还使用 include 包含工具栏。
<LinearLayout android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
xmlns:tools="http://schemas.android.com/tools"
xmlns:android="http://schemas.android.com/apk/res/android">
<android.support.v4.widget.DrawerLayout
android:id="@+id/navigation_Drawerlayout"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
tools:openDrawer="start">
<include layout="@layout/navigation_drawerlayout" />
<android.support.design.widget.NavigationView
android:id="@+id/navigation_View"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="start"
android:fitsSystemWindows="true">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<include layout="@layout/navigation_headerview" />
<android.support.v7.widget.RecyclerView
android:id="@+id/navigationRecycleView"
android:layout_width="match_parent"
android:layout_height="wrap_content"></android.support.v7.widget.RecyclerView>
</LinearLayout>
</android.support.design.widget.NavigationView>
</android.support.v4.widget.DrawerLayout>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
navigation_toolbarlayout.xml
该布局定义了toolbar上面代码中使用的代码
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/ThemeOverlay.AppCompat.ActionBar">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/colorPrimary"
android:minHeight="?attr/actionBarSize"
app:titleTextColor="@android:color/white">
<!-- Screen title -->
<TextView
android:id="@+id/toolbarTitle"
style="@style/TextAppearance.AppCompat.Widget.ActionBar.Title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text=""
android:textColor="@android:color/white"></TextView>
</android.support.v7.widget.Toolbar>
</android.support.design.widget.AppBarLayout> …Run Code Online (Sandbox Code Playgroud) 我正在做一些练习来学习 android 编程。
我希望这个水平布局中的每个按钮都是全宽的。
所以用户可以滚动它。
这是我的 xml:
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
<HorizontalScrollView
android:layout_width="wrap_content"
android:layout_height="140dp">
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<Button
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="Button1" />
<Button
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="0"
android:text="Button2" />
<Button
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="Button3" />
<Button
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="Button4" />
<Button
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="Button5" />
</LinearLayout>
</HorizontalScrollView>
</android.support.constraint.ConstraintLayout>
Run Code Online (Sandbox Code Playgroud)
所以按钮 1 和其他所有按钮都必须在画廊中滚动行
我正在编写一个 Android 应用程序,它基于 Fragments,插入根 emty 活动中。对于每个片段,我配置了单独的工具栏。当我打开第一个屏幕片段时,它工作正常。此屏幕的xml、工具栏代码和屏幕截图
<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true">
<android.support.design.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<include
android:id="@+id/toolbar_main"
android:layout_width="match_parent"
android:layout_height="wrap_content"
layout="@layout/layout_toolbar_main"/>
<android.support.v7.widget.RecyclerView
android:id="@+id/listOfClientsWithActions"
android:layout_height="match_parent"
android:scrollbars="vertical"
android:layout_width="match_parent"
android:clipToPadding="false" android:paddingTop="8dp"/>
</LinearLayout>
<android.support.design.widget.FloatingActionButton
android:id="@+id/fabAddContact"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="end|bottom"
android:src="@drawable/ic_baseline_add_white_24"
android:layout_margin="16dp" app:fabSize="normal"/>
</android.support.design.widget.CoordinatorLayout>
<android.support.design.widget.NavigationView
android:id="@+id/nav_view"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="start"
android:fitsSystemWindows="true"
app:itemIconTint="@color/drawer_item"
app:menu="@menu/drawer_menu"
app:itemTextAppearance="@style/NavDrawerItem"
app:headerLayout="@layout/nav_header"/>
</android.support.v4.widget.DrawerLayout>
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
initToolbar(view)
}
private fun initToolbar(view: View) {
val toolbar = view.findViewById<Toolbar>(R.id.toolbar_main)
(activity …Run Code Online (Sandbox Code Playgroud) android android-linearlayout android-fragments android-scrollview android-actionbar