LinearLayout
放置在Toolbar
内的Toolbar
向右移动,如您所见......
因此,TabHost
与Toolbar
(在父Fragment
中再次使用<LinearLayout 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:orientation="vertical"
tools:context="com.android.example">
<android.support.v7.widget.RecyclerView
android:id="@+id/recview_navigator"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginBottom="2dp"
android:layout_weight="1"/>
<android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:backgroundTint="@color/accent">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar_navigator"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<ImageView
android:id="@+id/imageView_navigator_up"
android:layout_width="30dp"
android:layout_height="30dp"
android:layout_weight="1"
android:src="@drawable/ic_navigate_before_white_48dp"
android:tint="@color/recview"/>
<ImageView
android:id="@+id/imageView_navigator_save"
android:layout_width="30dp"
android:layout_height="30dp"
android:layout_weight="1"
android:src="@drawable/ic_save_white_48dp"
android:tint="@color/recview"/>
</LinearLayout>
</android.support.v7.widget.Toolbar>
</android.support.design.widget.AppBarLayout>
</LinearLayout>
实现)不能很好地叠加。
布局草图(Android Studio)
实际应用
布局代码
#include <stdio.h>
#include<time.h>
#define N 16
int isAvailable(int sudoku[16][16], int row, int col, int num)
{
int i, j;
for(i=0; i<16; i++){
if( (sudoku[row][i] == num) || ( sudoku[i][col] == num ) )
return 0;
}
int rowStart = (row/4) * 4;
int colStart = (col/4) * 4;
for(i=rowStart; i<(rowStart+4); ++i)
{
for(j=colStart; j<(colStart+4); ++j)
{
if( sudoku[i][j] == num )
return 0;
}
}
return 1;
}
int fillsudoku(int sudoku[16][16], int row, int col)
{
int i;
if( row<16 && col<16 )
{
if( sudoku[row][col] != 0 )
{
if( (col+1)<16 )
return fillsudoku(sudoku, row, col+1);
else if( (row+1)<16 )
return fillsudoku(sudoku, row+1, 0);
else
return 1;
}
else
{
for(i=0; i<16; ++i)
{
if( isAvailable(sudoku, row, col, i+1) )
{
sudoku[row][col] = i+1;
if( (col+1)<16 )
{
if( fillsudoku(sudoku, row, col+1) )
return 1;
else
sudoku[row][col] = 0;
}
else if( (row+1)<16 )
{
if( fillsudoku(sudoku, row+1, 0) )
return 1;
else
sudoku[row][col] = 0;
}
else
return 1;
}
}
}
return 0;
}
else
{
return 1;
}
}
int main()
{
clock_t tic=clock();
int a,i,j;
int sudoku[N][N];
FILE *f;
f=fopen("s16.txt","r");
for(i=0;i<N;i++){
for(j=0;j<N;j++)
{
fscanf(f,"%d",&sudoku[i][j]);
}
}
if( fillsudoku(sudoku, 0, 0) )
{
for(i=0; i<16; ++i)
{
for(j=0; j<16; ++j){
printf("%d ", sudoku[i][j]);
if(sudoku[i][j]<10){
printf(" ");
}
if(j%4==3){
printf("|");
}
}
printf("\n");
if(i%4==3){
printf("----------------------------------------------------");
}
printf("\n");
}
}
else
{
printf("\n\nNO SOLUTION\n\n");
}
clock_t toc=clock();
printf("\nTotal time elasped is %f", (double)(toc - tic) / CLOCKS_PER_SEC);
return 0;
fclose(f);
}
答案 0 :(得分:11)
您是否尝试删除内容插入内容?
<android.support.v7.widget.Toolbar`
app:contentInsetStart="0dp"
app:contentInsetLeft="0dp"
...>
答案 1 :(得分:2)
问题
额外的保证金空间是因为toolbar
标签。它默认大约有16dp
个空格。这是必需的,因此可以显示汉堡包,app_icon或up-caret等图标。
你怎么解决它?
嗯,黑客是在android:layout_marginLeft="-16dp"
标记中包含toolbar
属性,但是如果在调用子活动时显示up-caret(后退按钮),则可能会弄乱布局导航抽屉的汉堡包图标。
我早些时候写过here。
如果您不打算使用toolbar
的功能,那么最好使用以下布局替换整个appBarLayout
。
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/colorAccent"
android:orientation="horizontal">
<ImageView
android:id="@+id/imageView_navigator_up"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:adjustViewBounds="false"
android:src="@drawable/ic_navigate_before_white_48dp"/>
<ImageView
android:id="@+id/imageView_navigator_save"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:src="@drawable/ic_save_black_48dp"/>
</LinearLayout>