我有这个布局:
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#FF2c3e50">
<FrameLayout
android:layout_width="300px"
android:layout_height="5px"
android:background="#FF4a80c2"
>
</FrameLayout>
<HorizontalScrollView
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:overScrollMode="never">
<GridLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:rowCount="2"
android:orientation="vertical"
android:padding="50px">
<Button
android:layout_marginBottom="20px"
android:layout_marginRight="20px"
android:lines="2"
android:textColor="#fff3f3f3"
android:layout_width="165px"
android:layout_height="165px"
android:text="zrušit bez zápisu"
android:gravity="center"
android:textStyle="bold"
android:padding="10px"
android:textSize="24px"
android:background="@drawable/cancel_button"/>
<Button
android:layout_marginBottom="20px"
android:layout_marginRight="20px"
android:lines="2"
android:textColor="#fff3f3f3"
android:layout_width="165px"
android:layout_height="165px"
android:text="odchod"
android:gravity="center"
android:textStyle="bold"
android:textSize="24px"
android:padding="10px"
android:background="@drawable/type_button_default"/>
<Button
android:layout_marginBottom="20px"
android:lines="2"
android:layout_marginRight="20px"
android:textColor="#fff3f3f3"
android:layout_width="165px"
android:layout_height="165px"
android:text="nemoc"
android:padding="10px"
android:gravity="center"
android:textStyle="bold"
android:textSize="24px"
android:background="@drawable/type_button"/>
<Button
android:layout_marginBottom="20px"
android:layout_marginRight="20px"
android:lines="2"
android:textColor="#fff3f3f3"
android:layout_width="165px"
android:layout_height="165px"
android:text="léka?"
android:padding="10px"
android:gravity="center"
android:textStyle="bold"
android:textSize="24px"
android:background="@drawable/type_button"/>
<Button
android:layout_marginBottom="20px"
android:layout_marginRight="20px"
android:lines="2" …Run Code Online (Sandbox Code Playgroud) 我有一个GridLayout包含a ListView和a TextView.当项目被添加到ListView它时,它将增大尺寸并将其TextView下方推出屏幕.我认为通过设置layout_gravity="fill"ListView它根本不会增长,而是占用所有可用空间.
如何配置ListView占用可用空间而不是增长并将其下方的视图推出屏幕?
我正在寻找一个使用的解决方案GridLayout.我知道在我的情况下,一个人
LinearLayout也会工作.然而,这只是一个最小的测试用例来说明我的问题.
如果可能的话,我不想以编程方式设置高度.
<android.support.v7.widget.GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:columnCount="1"
app:useDefaultMargins="true" >
<ListView
app:layout_gravity="fill" />
<TextView
android:text="TextView" />
</android.support.v7.widget.GridLayout>
Run Code Online (Sandbox Code Playgroud) 我正在使用回收站视图来显示包含图像网格布局的项目列表.网格布局动态添加到回收器视图适配器上"onBindViewHolder"方法内的列表项.现在的问题是在每个滚动上重新创建网格布局视图.我不希望在滚动时重新创建这些视图.怎么处理?
这是代码片段
@Override
public void onBindViewHolder(final PersonViewHolder personViewHolder, final int i) {
GridLayout feedGrid = new GridLayout(context);
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(dipToPixels(context,HomePage.SCREEN_WIDTH),dipToPixels(context,HomePage.SCREEN_WIDTH));
feedGrid.setLayoutParams(layoutParams);
feedGrid.setColumnCount(1);
imgArr = new ImageView[num];
imgArr[0] = new ImageView(context);
GridLayout.Spec row = GridLayout.spec(0, 1);
GridLayout.Spec colspan = GridLayout.spec(0, 1);
GridLayout.LayoutParams gridLayoutParam = new GridLayout.LayoutParams(row, colspan);
gridLayoutParam.setGravity(Gravity.FILL);
Picasso.with(context).load(urlArr.get(0)).error(mDrawable).placeholder(mDrawable).into(imgArr[0], new Callback() {
@Override
public void onSuccess() {
personViewHolder.feedGridLayout.setVisibility(View.VISIBLE);
personViewHolder.loadImg.setVisibility(View.GONE);
}
@Override
public void onError() {
personViewHolder.feedGridLayout.setVisibility(View.GONE);
personViewHolder.loadImg.setVisibility(View.VISIBLE);
}
});
feedGrid.addView(imgArr[0], gridLayoutParam);
personViewHolder.feedGridLayout.removeAllViews();
personViewHolder.feedGridLayout.addView(feedGrid);
}
Run Code Online (Sandbox Code Playgroud) android android-gridlayout recycler-adapter android-recyclerview
我打算制作网格基础应用程序,其中网格数量将根据用户的点击而改变.网格模式: - 2*2,4*4 ... [比如,用户将点击正确的网格,然后网格数量将增加].我能够制作网格,但它不适合布局.那么,如何更改用户点击的网格数量以及如何动态设置网格的大小.
在这里,我附上了我想要实现的图像.
当用户点击上不同颜色的格子,格子的数量将增加像第二图像.
图片:1
图片:2
用户点击时网格数量增加.
我有一个垂直列表(垂直LinearLayout).在每个单元格中,我有两个EditText字段,彼此相邻.第一个应该对齐到单元格的左边,第二个对齐到单元格的中间,基本上导致两个列彼此相邻.我以为我使用了两列GridLayout.然而,令我惊讶的是,第二个EditText与单元格的右侧而不是单元格的中间对齐.我错了什么?
<GridLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:alignmentMode="alignBounds"
android:columnCount="2" >
<TextView
android:id="@+id/sourceLanguage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="left|center_vertical"
android:text="test1"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textColor="#FF3366"
android:textIsSelectable="true" />
<TextView
android:id="@+id/targetLanguage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:gravity="left|center_vertical"
android:text="test2"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textColor="#993366"
android:textIsSelectable="true" />
</GridLayout>
Run Code Online (Sandbox Code Playgroud)
几乎在那里,但没有退出...除了第二列不是完全左对齐.
这是期望的结果!!!

我在我的应用程序中使用GridLayout,它运行得很好.现在我也必须支持android 3.xx,所以我加入了android-support-library-v7.我刚刚在所有地方更改了GridLayout和LayoutParams的import语句.我现在可以构建项目,但是当我运行应用程序时,它会因NoSuchMethodError异常而崩溃.
我按照这些步骤来包含支持库
这是堆栈跟踪:
03-27 13:37:13.454: E/AndroidRuntime(23016): FATAL EXCEPTION: main
03-27 13:37:13.454: E/AndroidRuntime(23016): java.lang.NoSuchMethodError: android.support.v4.view.ViewCompat.getLayoutDirection
03-27 13:37:13.454: E/AndroidRuntime(23016): at android.support.v7.widget.GridLayout.isLayoutRtlCompat(GridLayout.java:675)
03-27 13:37:13.454: E/AndroidRuntime(23016): at android.support.v7.widget.GridLayout.getDefaultMargin(GridLayout.java:660)
03-27 13:37:13.454: E/AndroidRuntime(23016): at android.support.v7.widget.GridLayout.getMargin1(GridLayout.java:671)
03-27 13:37:13.454: E/AndroidRuntime(23016): at android.support.v7.widget.GridLayout$Axis.computeMargins(GridLayout.java:1547)
03-27 13:37:13.454: E/AndroidRuntime(23016): at android.support.v7.widget.GridLayout$Axis.getLeadingMargins(GridLayout.java:1558)
03-27 13:37:13.454: E/AndroidRuntime(23016): at android.support.v7.widget.GridLayout.getMargin(GridLayout.java:683)
03-27 13:37:13.454: E/AndroidRuntime(23016): at android.support.v7.widget.GridLayout.getTotalMargin(GridLayout.java:692)
03-27 13:37:13.454: E/AndroidRuntime(23016): at android.support.v7.widget.GridLayout.measureChildWithMargins2(GridLayout.java:897)
03-27 13:37:13.454: E/AndroidRuntime(23016): at android.support.v7.widget.GridLayout.measureChildrenWithMargins(GridLayout.java:911)
03-27 13:37:13.454: E/AndroidRuntime(23016): at android.support.v7.widget.GridLayout.onMeasure(GridLayout.java:950)
03-27 13:37:13.454: E/AndroidRuntime(23016): at android.view.View.measure(View.java:15848)
03-27 13:37:13.454: E/AndroidRuntime(23016): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5008)
03-27 13:37:13.454: E/AndroidRuntime(23016): at …Run Code Online (Sandbox Code Playgroud) 如何将如下所示的线性布局转换为网格视图?所以基本上我需要它是3列和2行(横向).也没有国界.
示例项目在此处上传.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<SurfaceView
android:id="@+id/video_1_surfaceview"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="1" />
<SurfaceView
android:id="@+id/video_2_surfaceview"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="1" />
<SurfaceView
android:id="@+id/video_3_surfaceview"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="1" />
<SurfaceView
android:id="@+id/video_4_surfaceview"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="1" />
<SurfaceView
android:id="@+id/video_5_surfaceview"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="1" />
<SurfaceView
android:id="@+id/video_6_surfaceview"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="1" />
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
更新:这是我的onCreate()方法和类中的初始化:
public class MultipleVideoPlayActivity extends Activity implements OnBufferingUpdateListener, OnCompletionListener, OnPreparedListener, OnVideoSizeChangedListener, SurfaceHolder.Callback {
private static final String TAG = "MediaPlayer";
private static final int[] SURFACE_RES_IDS = { R.id.video_1_surfaceview, R.id.video_2_surfaceview …Run Code Online (Sandbox Code Playgroud) 我正在制作一款益智游戏。我正在尝试制作一个GridLayout大小为 4x4 的动态尺寸。我通过代码添加LinearLayout为子项,然后添加到GridLayout 的ImageView内部。LinearLayout布局非常顺利。但是,当我将 ImageView 放入任何网格中时,图像将占据 GridLayout 的完整高度和宽度。但它应该只采用其所在网格的大小。
这是我的代码:
public class PuzzleActivity extends AppCompatActivity {
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.puzzle_layout);
findViewById(R.id.a0).setOnTouchListener(new MyTouchListener());
findViewById(R.id.b0).setOnTouchListener(new MyTouchListener());
findViewById(R.id.c0).setOnTouchListener(new MyTouchListener());
findViewById(R.id.d0).setOnTouchListener(new MyTouchListener());
findViewById(R.id.e0).setOnTouchListener(new MyTouchListener());
GridLayout layout = (GridLayout) findViewById(R.id.gridLayout);
layout.setRowCount(4);
layout.setColumnCount(4);
for (int i = 0; i < 4; i++) {
GridLayout.Spec rowSpec = GridLayout.spec(i, 1,1);
for (int j = 0; j < 4; j++) {
GridLayout.Spec colSpec = …Run Code Online (Sandbox Code Playgroud) 我有不同宽度的卡,我想创建一个Grid Layout,其中width =匹配父级(填充屏幕)和固定高度。我想在Grid布局中设置卡片,以便列数根据适合行的元素的宽度而变化。
因此,元素将在水平行中设置,直到它们适合屏幕为止,然后在超过固定高度时以垂直滚动的方式转到下一行。
我正在尝试使用“网格布局”,但我不知道它是否适合此解决方案。我使用本机Android。
这里的图片看起来应该像这样:
谢谢。
我试图在xml文件中添加GridView的子视图,但它给出了错误,并且它与GridLayout一起工作正常.所以我想知道..在Android中有什么区别b/w GridView和GridLayout?